(PHP 5 >= 5.3.0)
array_replace_recursive — Reemplaza los elementos de los arrays pasados al primer array de forma recursiva
array_replace_recursive() reemplaza los valores del primer array con los mismos valores de todos los siguientes arrays. Si una clave del primer array existe en el segundo array, su valor será reemplazado por el valor del segundo array. Si la clave existe en el segundo array, y no en el tercero, será creada en el primer array. Si una clave existe unícamente en el primer array, se dejdará como está. Si se pasan varios array para el reemplazamiento, serán procesados en orden, el último array sobrescribiendo los valores anteriores.
array_replace_recursive() es recursiva: hará recursión en los arrays y aplicará el mismo proceso al valor interno.
Cuando el valor de array es escalar, será reemplazado por el valor de array1, que puede ser escalar o un array. Cuando el valore de array y array1 son arrays, array_replace_recursive() reemplazará sus respectivos valores recursivamente.
El array en el que los elementos son reemplazados.
El array del que se extraen los elementos.
Devuelve un array, o NULL en caso de error.
Example #1 Ejemplo de array_replace_recursive()
<?php
$base = array('cítricos' => array( "naranja") , 'bayas' => array("mora", "frambuesa"), );
$reemplazamientos = array('cítricos' => array('piña'), 'bayas' => array('arándano'));
$cesta = array_replace_recursive($base, $reemplazamientos);
print_r($cesta);
$cesta = array_replace($base, $reemplazamientos);
print_r($cesta);
?>
El resultado del ejemplo sería:
Array ( [cítricos] => Array ( [0] => piña ) [bayas] => Array ( [0] => arándano [1] => frambuesa ) ) Array ( [cítricos] => Array ( [0] => piña ) [bayas] => Array ( [0] => arándano ) )
Example #2 array_replace_recursive() y comportamiento recursivo
<?php
$base = array('cítricos' => array("naranja") , 'bayas' => array("mora", "frambuesa"), 'otros' => 'banana' );
$reemplazamientos = array('cítricos' => 'piña', 'bayas' => array('arándano'), 'otros' => array('litchis'));
$reemplazamientos2 = array('cítricos' => array('piña'), 'bayas' => array('arándano'), 'otros' => 'litchis');
$cesta = array_replace_recursive($base, $reemplazamientos, $reemplazamientos2);
print_r($cesta);
?>
El resultado del ejemplo sería:
Array ( [cítricos] => Array ( [0] => piña ) [bayas] => Array ( [0] => arándano [1] => frambuesa ) [otros] => litchis )