Для замены элементов массива элементами из другого массива или массивов используется функция array_replace().
Если ключ из первого массива присутствует во втором массиве, его значение заменяется на значение из второго массива. Если ключ есть во втором массиве, но отсутствует в первом — он будет создан в первом массиве. Если ключ присутствует только в первом массиве, то сохранится как есть. Если для замены передано несколько массивов, они будут обработаны в порядке передачи и более поздние массивы будут перезаписывать значения из предыдущих.
Пример использования:
echo '<pre>'; $a = array("кино", "музыка", "театр", "цирк", "школа"); $b = array(0=>"фильм", 3=>"песня", 4=>"гитара", 5=>"патифон", 6=>"башня"); $c = array(3=>"23", "80", "999", 6=>"транзистор", "диод"); $arr = array_replace($a, $b, $c); print_r ($arr); echo '</pre>';
Array
(
[0] => фильм
[1] => музыка
[2] => театр
[3] => 23
[4] => 80
[5] => 999
[6] => транзистор
[7] => диод
)
Если нам например необходимо заменить один элемент массива номер ключа которого нам не известен, то можно его заменить зная его значение:
echo '<pre>'; $a = array("кино", "музыка", "театр", "цирк", "школа"); $key = array_search("театр",$a); // находим элемент массива по значению и извлекаем его ключ $b[$key] = "STOP"; // присваиваем ключ новому значению $arr = array_replace($a, (array)$b); // замена элемента массива новым значением print_r ($arr); echo '</pre>';
Array
(
[0] => кино
[1] => музыка
[2] => STOP
[3] => цирк
[4] => школа
)


