Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Разбить строку
 
 автор: Tema   (08.07.2006 в 17:18)   письмо автору
 
 

Подскажите, как сделать из строки 123456, вот такую 12 34 56?

   
 
 автор: RV   (08.07.2006 в 17:31)   письмо автору
 
   для: Tema   (08.07.2006 в 17:18)
 


<?
$str 
"123456";
$final $str[0] . $str[1] . " " $str[2] . $str[3] . " " $str[4] . $str[5];
echo 
$final;
?>

   
 
 автор: Tema   (08.07.2006 в 17:56)   письмо автору
 
   для: RV   (08.07.2006 в 17:31)
 

Я думал может поэлегантнее решение есть?

   
 
 автор: RV   (08.07.2006 в 18:06)   письмо автору
 
   для: Tema   (08.07.2006 в 17:56)
 

ну так придумай поэлегантней

   
 
 автор: Tema   (08.07.2006 в 18:18)   письмо автору
 
   для: RV   (08.07.2006 в 18:06)
 

спасибо за помощь

   
 
 автор: Киналь   (08.07.2006 в 20:15)   письмо автору
 
   для: Tema   (08.07.2006 в 17:56)
 

Можно не элегантнее, можно... э-э... Хитровымаханнее=)) В цикле брать по два символа и добавлять пробел. Или рассматривать строку как массив и вставить пробелы как элементы массива - цикл по индексу элемента.

   
 
 автор: Trianon   (09.07.2006 в 00:55)   письмо автору
 
   для: Киналь   (08.07.2006 в 20:15)
 

ага. )) Сейчас придет cheops и напишет preg_replace ))

   
 
 автор: cheops   (09.07.2006 в 11:02)   письмо автору
 
   для: Trianon   (09.07.2006 в 00:55)
 

Хм... помоему всё-таки проще циклом
<?php
  $number 
"123456";
  
$new "";
  for(
$i strlen($number) - 1$j 0$i  >= 0;  $i--, $j++)
  {
    if(
$j == 2)
    {
      
$j 0;
      
$new " ".$new;
    }
    
$new $number[$i].$new;
  }
  echo 
$new;
?> 

PS Был бы интервал в три числа, можно было бы воспользоваться станратной функцией number_format().

   
 
 автор: Tema   (09.07.2006 в 16:51)   письмо автору
 
   для: cheops   (09.07.2006 в 11:02)
 

Интересный вариант. Спасибо.
А что будет быстрее? Вызов по символу или цикл?

   
 
 автор: cheops   (09.07.2006 в 22:18)   письмо автору
 
   для: Tema   (09.07.2006 в 16:51)
 

Если вы заранее знаете число символов в числе, то вызов по символам будет быстрее цикла, но не столько, чтобы вы и ваши пользователи заметили разницу невооружённым взглядом.

   
 
 автор: Trianon   (10.07.2006 в 11:28)   письмо автору
 
   для: cheops   (09.07.2006 в 11:02)
 

Эх... ну как же так....

<?
$str 
"12345678";
$strtrim(strrev(preg_replace('/(.{2})/''\1 'strrev($str))));
echo 
$str;
?>

   
 
 автор: cheops   (10.07.2006 в 11:41)   письмо автору
 
   для: Trianon   (10.07.2006 в 11:28)
 

Хм... что-то мне реверс в голову не пришёл :)))

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования