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

Форум PHP

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

 

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

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

тема: Проблема с str_replace и array
 
 автор: maxam   (27.08.2008 в 16:00)   письмо автору
 
 

$Randomize = rand ( 0 , 6 );
$Array0 = array ( '0' , '1' , '2' , '3' , '4' , '5' , '6' );
$Array1 = array ( '#f60' , '#090' , '#666' , '#369' , '#963' , '#366' , '#636' );
$Randomize = str_replace ( $Array0 , $Array1 , $Randomize );
echo $Randomize;


При значениях rand 3, или 5 (и других, кроме 6) получается такой результат:
#3#6369
#3#636#636


Почему?

  Ответить  
 
 автор: DEM   (27.08.2008 в 16:12)   письмо автору
 
   для: maxam   (27.08.2008 в 16:00)
 

Потому что вы не заменяете само занчение... К примеру выпало 3, тогда в этом значении '#369', тройка (3) заменится на него '#369'... В str_replace() первый параметр указывает что имнео искать, а второй на что найденое заменить... То есть вы в $Array1[3] ищете $Array0[3] и заменяется значение $Array0[3] на опять же на $Array1[3]. Не знаю как понятней объяснить :)

  Ответить  
 
 автор: Maxam   (27.08.2008 в 16:18)   письмо автору
 
   для: DEM   (27.08.2008 в 16:12)
 

Дать через цикл делать?

  Ответить  
 
 автор: BinLaden   (27.08.2008 в 16:20)   письмо автору
 
   для: Maxam   (27.08.2008 в 16:18)
 

Вы можете применить strtr().

  Ответить  
 
 автор: Maxam   (27.08.2008 в 16:33)   письмо автору
 
   для: BinLaden   (27.08.2008 в 16:20)
 

Спасибо, разобрался через цикл.

  Ответить  
 
 автор: BinLaden   (27.08.2008 в 16:36)   письмо автору
 
   для: Maxam   (27.08.2008 в 16:33)
 

Не за что, если Вы не последовали совету.

  Ответить  
Rambler's Top100
вверх

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