Для замены элементов массива элементами из другого массива или массивов используется функция 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] => школа )