(PHP 5 >= 5.3.0, PHP 7, PHP 8)
array_replace — Заменяет элементы массива элементами других массивов
Функция array_replace() создаёт новый массив и присваивает новому массиву элементы, которые извлекла из каждого ключа каждого входного массива. Функция использует значение из самого правого входного массива, если один и тот же ключ встречается в нескольких входных массивах.
Функция array_replace() не обрабатывает элементы рекурсивно, а заменяет значение каждого ключа как только встречает ключ в следующем массиве.
array
Массив, элементы которого требуется заменить.
replacements
Массивы, из которых функция извлечёт элементы. Значения следующего массива перезаписывают значения предыдущего.
Функция возвращает массив (array).
Пример #1 Пример замены элементов массива элементами других массивов функцией array_replace()
<?php
$base = array("апельсин", "банан", "яблоко", "малина");
$replacements = array(0 => "ананас", 4 => "вишня");
$replacements2 = array(0 => "виноград");
$basket = array_replace($base, $replacements, $replacements2);
var_dump($basket);
?>
Результат выполнения приведённого примера:
array(5) { [0]=> string(16) "виноград" [1]=> string(10) "банан" [2]=> string(12) "яблоко" [3]=> string(12) "малина" [4]=> string(10) "вишня" }
Пример #2 Пример обработки вложенных массивов
<?php
$base = [ 'цитрусовые' => [ 'апельсин', 'лимон' ], 'семечковые' => [ 'яблоко' ] ];
$replacements = [ 'цитрусовые' => [ 'грейпфрут' ] ];
$replacements2 = [ 'цитрусовые' => [ 'кумкват', 'цитрон' ], 'семечковые' => [ 'мушмула' ] ];
$basket = array_replace($base, $replacements, $replacements2);
var_dump($basket);
?>
Результат выполнения приведённого примера:
array(2) { ["цитрусовые"]=> array(2) { [0]=> string(14) "кумкват" [1]=> string(12) "цитрон" } ["семечковые"]=> array(1) { [0]=> string(14) "мушмула" } }