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 :: Версия для печати :: Замена в массиве
Форумы портала PHP.SU » » Вопросы новичков » Замена в массиве

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

1. netclan - 24 Сентября, 2013 - 05:01:48 - перейти к сообщению
Есть массив:
PHP:
скопировать код в буфер обмена
  1. (
  2.     [Иванов] => 3
  3.     [Николаев] => 4
  4.     [Бадулов] => 7
  5.     [Сидоров] => 15
  6.     [Киров] => 41
  7.     [Меньшиков] => 51
  8. )
  9.  

также есть массив массивов:
PHP:
скопировать код в буфер обмена
  1.  
  2. (
  3.     [0] => 0324
  4.     [1] => Николаев
  5. )
  6. (
  7.     [0] => 13424
  8.     [1] => Сидоров
  9. )
  10. (
  11.     [0] => 23242
  12.     [1] => Киров
  13. )
  14. (
  15.     [0] => 323424
  16.     [1] => Меньшиков
  17. )
  18. (
  19.     [0] => 4234234
  20.     [1] => Меньшиков
  21. )
  22.  

собственно вопрос, каким образом можно перебрать значения под массивов и заменить значения ключей под массивов, значениями первого массива, т.е. на выходе хочу получить следующее:
PHP:
скопировать код в буфер обмена
  1.  
  2. (
  3.     [0] => 0324
  4.     [1] => 4
  5. )
  6. (
  7.     [0] => 13424
  8.     [1] => 15
  9. )
  10. (
  11.     [0] => 23242
  12.     [1] => 41
  13. )
  14. (
  15.     [0] => 323424
  16.     [1] => 51
  17. )
  18. (
  19.     [0] => 4234234
  20.     [1] => 51
  21. )
  22.  

Не понял
2. netclan - 24 Сентября, 2013 - 09:47:50 - перейти к сообщению
Пытался сделать так:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. $newphrase = str_replace($data[1], $array, $data);
  3.  

, где $data[1] значение из подмассивов которое нужно заменить, $array это первый массив на значения которого требовалось изменить значения первого, а $data второй массив в котором требовалась замена.

На выходе получаю: Notice: Array to string conversion in
и массив:
PHP:
скопировать код в буфер обмена
  1.  
  2. (
  3.     [0] => 0324
  4.     [1] => Array
  5. )
  6. (
  7.     [0] => 13424
  8.     [1] => Array
  9. )
  10. (
  11.     [0] => 23242
  12.     [1] => Array
  13. )
  14. (
  15.     [0] => 323424
  16.     [1] => Array
  17. )
  18. (
  19.     [0] => 4234234
  20.     [1] => Array
  21. )
  22.  

Кто подскажет как исправить?
3. IllusionMH - 24 Сентября, 2013 - 10:32:31 - перейти к сообщению
netclan, причем тут замена в строке? Хоть читайте мануал по функции, прежде чем ее лепить.
PHP:
скопировать код в буфер обмена
  1. foreach($m2 as $m) {
  2.   $m[1] = $m1[$m[1]];
  3. }

Где какой массив не сложно догадаться. Проверку на существование такого элемента в первом массиве добавите самостоятельно
4. netclan - 24 Сентября, 2013 - 15:20:48 - перейти к сообщению
Спасибо!

 

Powered by ExBB FM 1.0 RC1