array_replace_recursive
Рекурсивно заменяет элементы первого массива элементами других массивов
&reftitle.description;
arrayarray_replace_recursive
arrayarray
arrayreplacements
Функция array_replace_recursive заменяет значения массива
array на значения
с тем же ключом из каждого следующего массива.
Значение первого массива заменяется значением из второго,
если второй массив содержит ключ из первого.
Функция создаст ключ в первом массиве,
если второй массив содержит ключ, которого нет в первом.
Ключ в первом массиве не изменяется, если ключ содержится только в первом массиве.
Массивы обрабатываются по порядку, очередные значения перезаписывают
предыдущие.
Функция array_replace_recursive рекурсивно
углубляется в массивы и применяет к каждому внутреннему значению один и тот
же процесс.
Скалярное значение в первом массиве
заменяется скалярным значением или массивом из второго.
Функция array_replace_recursive рекурсивно заменит
значения в значении-массиве первого массива,
если значения обоих массивов содержат массив.
&reftitle.parameters;
array
Массив, элементы которого требуется заменить.
replacements
Массивы, из которых функция возьмёт элементы для замены.
&reftitle.returnvalues;
Функция возвращает значение с типом array.
&reftitle.examples;
Пример рекурсивной замены элементов функцией array_replace_recursive
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);
?>
]]>
&example.outputs;
Array
(
[0] => pineapple
)
[berries] => Array
(
[0] => blueberry
[1] => raspberry
)
)
Array
(
[citrus] => Array
(
[0] => pineapple
)
[berries] => Array
(
[0] => blueberry
)
)
]]>
Функция array_replace_recursive и рекурсивное поведение
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);
?>
]]>
&example.outputs;
Array
(
[0] => pineapple
)
[berries] => Array
(
[0] => blueberry
[1] => raspberry
)
[others] => litchis
)
]]>
&reftitle.seealso;
array_replace
array_merge_recursive