Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: проблема с str_replace
Форумы портала PHP.SU » » Вопросы новичков » проблема с str_replace

Страниц (1): [1]
 

1. Brajt - 22 Декабря, 2011 - 19:14:08 - перейти к сообщению
есть два массива
$mas1 = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
$mas2 = array(6, 25, 20, 25, 50, 25, 30, 40, 10); и переменная $x с числом от 1 до 9. пытаюсь заменить число в $x на число из массива $mas2: $cena = str_replace($mas1, $mas2, $x); Вот тут если в $x было число 1, оно заменяется не на 6 из $mas2, а на 25. Число 2 в $x заменяется не на 25, а на 250. И число 4 в $x заменяется не на 25, а на 250. Остальные заменяются правильно. Из-за чего эта беда получается?
2. Panoptik - 22 Декабря, 2011 - 19:16:40 - перейти к сообщению
str_replace - строковая функция , а применяете вы ее к массивам. странно что она вообще у вас работает и вообще задача немного непонятно звучит что, где и на что нужно менять
3. Brajt - 22 Декабря, 2011 - 19:20:15 - перейти к сообщению
"str_replace -- Заменяет строку поиска на строку замены
С версии PHP 4.0.5, любой аргумент str_replace() может быть массивом." - это из мануала. с массивами эта функция работает
4. EuGen - 22 Декабря, 2011 - 19:23:14 - перейти к сообщению
Эта "беда" получается, так как Вы работаете с целыми числами. Вот этот 1 и заменяется не на значение по строковому индексу а на значение по числовому. А это и есть первый элемент (первый - не нулевой, не забывайте, что массивы индексируются с нуля), то есть 25

Работайте со строковыми значениями и все будет работать.
5. Brajt - 22 Декабря, 2011 - 20:16:42 - перейти к сообщению
всем спасибо, получилось

 

Powered by ExBB FM 1.0 RC1