(PHP 5 >= 5.3.0, PHP 7, PHP 8)
array_replace_recursive — Sustituye recursivamente en el primer array los elementos de los otros arrays proporcionados
array_replace_recursive() sustituye los valores del array
array
con los valores de las mismas claves provenientes de los
arrays siguientes. Si una clave del primer array existe en uno de los
arrays siguientes, su valor será sustituido. Si la clave no existe
en el primer array, será creada. Si la clave solo existe en
el primer array, será dejada intacta. Si varios arrays
son pasados como argumentos de sustitución, serán tratados en orden.
array_replace_recursive() es recursiva: si un valor es un array, la misma función de sustitución le será aplicada.
Si el valor en el primer array es escalar, será sustituido por el valor del segundo array, ya sea un escalar o un array. Si los valores del primer y segundo array son ambos arrays, array_replace_recursive() sustituirá los valores recursivamente.
array
El array en el cual los elementos son sustituidos.
replacements
Arrays desde los cuales los elementos pueden ser extraídos.
Devuelve un array.
Ejemplo #1 Ejemplo con 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);
?>
El resultado del ejemplo sería:
Array ( [citrus] => Array ( [0] => pineapple ) [berries] => Array ( [0] => blueberry [1] => raspberry ) ) Array ( [citrus] => Array ( [0] => pineapple ) [berries] => Array ( [0] => blueberry ) )
Ejemplo #2 Ejemplo con array_replace_recursive() y la recursividad
<?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);
?>
El resultado del ejemplo sería:
Array ( [citrus] => Array ( [0] => pineapple ) [berries] => Array ( [0] => blueberry [1] => raspberry ) [others] => litchis )