array_replace_recursive
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
array_replace_recursive — Рекурсивно заменяет элементы первого массива элементами других массивов
Описание
function array_replace_recursive(
array $array,
array ...$replacements):
array
Функция array_replace_recursive() рекурсивно
углубляется в массивы и применяет к каждому внутреннему значению один и тот
же процесс.
Скалярное значение в первом массиве
заменяется скалярным значением или массивом из второго.
Функция array_replace_recursive() рекурсивно заменит
значения в значении-массиве первого массива,
если значения обоих массивов содержат массив.
Список параметров
array
-
Массив, элементы которого требуется заменить.
replacements
-
Массивы, из которых функция возьмёт элементы для замены.
Возвращаемые значения
Функция возвращает значение с типом array.
Примеры
Пример #1 Пример рекурсивной замены элементов функцией array_replace_recursive()
<?php
$base = array('citrus' => array("orange"), 'berries' => array("blackberry", "raspberry"));
$replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry'));
$basket = array_replace_recursive($base, $replacements);
print_r($basket);
$basket = array_replace($base, $replacements);
print_r($basket);
?>
Результат выполнения приведённого примера:
Array
(
[citrus] => Array
(
[0] => pineapple
)
[berries] => Array
(
[0] => blueberry
[1] => raspberry
)
)
Array
(
[citrus] => Array
(
[0] => pineapple
)
[berries] => Array
(
[0] => blueberry
)
)
Пример #2 Функция array_replace_recursive() и рекурсивное поведение
<?php
$base = array('citrus' => array("orange") , 'berries' => array("blackberry", "raspberry"), 'others' => 'banana' );
$replacements = array('citrus' => 'pineapple', 'berries' => array('blueberry'), 'others' => array('litchis'));
$replacements2 = array('citrus' => array('pineapple'), 'berries' => array('blueberry'), 'others' => 'litchis');
$basket = array_replace_recursive($base, $replacements, $replacements2);
print_r($basket);
?>
Результат выполнения приведённого примера:
Array
(
[citrus] => Array
(
[0] => pineapple
)
[berries] => Array
(
[0] => blueberry
[1] => raspberry
)
[others] => litchis
)