array_replace_recursive
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
array_replace_recursive — Replaces elements from passed arrays into the first array recursively
Description
function array_replace_recursive(
array $array,
array ...$replacements):
array
array_replace_recursive() is recursive : it will recurse into
arrays and apply the same process to the inner value.
When the value in the first array is scalar, it will be replaced
by the value in the second array, may it be scalar or array.
When the value in the first array and the second array
are both arrays, array_replace_recursive() will replace
their respective value recursively.
Parameters
array
-
The array in which elements are replaced.
replacements
-
Arrays from which elements will be extracted.
Return Values
Returns an array.
Examples
Example #1 array_replace_recursive() example
<?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);
?>
The above example will output:
Array
(
[citrus] => Array
(
[0] => pineapple
)
[berries] => Array
(
[0] => blueberry
[1] => raspberry
)
)
Array
(
[citrus] => Array
(
[0] => pineapple
)
[berries] => Array
(
[0] => blueberry
)
)
Example #2 array_replace_recursive() and recursive behavior
<?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);
?>
The above example will output:
Array
(
[citrus] => Array
(
[0] => pineapple
)
[berries] => Array
(
[0] => blueberry
[1] => raspberry
)
[others] => litchis
)