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