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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: проблема с str_replace

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Brajt
Отправлено: 22 Декабря, 2011 - 19:14:08
Post Id


Новичок


Покинул форум
Сообщений всего: 60
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




есть два массива
$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. Остальные заменяются правильно. Из-за чего эта беда получается?
 
 Top
Panoptik
Отправлено: 22 Декабря, 2011 - 19:16:40
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




str_replace - строковая функция , а применяете вы ее к массивам. странно что она вообще у вас работает и вообще задача немного непонятно звучит что, где и на что нужно менять


-----
Just do it
 
 Top
Brajt
Отправлено: 22 Декабря, 2011 - 19:20:15
Post Id


Новичок


Покинул форум
Сообщений всего: 60
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




"str_replace -- Заменяет строку поиска на строку замены
С версии PHP 4.0.5, любой аргумент str_replace() может быть массивом." - это из мануала. с массивами эта функция работает
 
 Top
EuGen Администратор
Отправлено: 22 Декабря, 2011 - 19:23:14
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Эта "беда" получается, так как Вы работаете с целыми числами. Вот этот 1 и заменяется не на значение по строковому индексу а на значение по числовому. А это и есть первый элемент (первый - не нулевой, не забывайте, что массивы индексируются с нуля), то есть 25

Работайте со строковыми значениями и все будет работать.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Brajt
Отправлено: 22 Декабря, 2011 - 20:16:42
Post Id


Новичок


Покинул форум
Сообщений всего: 60
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




всем спасибо, получилось
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB