(PHP 5 >= 5.3.0, PHP 7)
array_replace_recursive — Reemplaza los elementos de los arrays pasados al primer array de forma recursiva
$array1
, array $array2
[, array $...
] )
array_replace_recursive() reemplaza los valores de
array1
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 primero, será creada en el primer array.
Si una clave existe únicamente en el primer array, se dejará como está.
Si se pasan varios arrays para el reemplazo, serán procesados
en orden, el último array sobrescribiendo los valores anteriores.
array_replace_recursive() es recursiva: realizará la recursividad en los arrays y aplicará el mismo proceso al valor interno.
Cuando el valor de array1
es escalar, será reemplazado
por el valor de array2
, que puede ser escalar o un array.
Cuando los valores de array1
y array2
son arrays, array_replace_recursive() reemplazará
sus respectivos valores recursivamente.
array1
El array cuyos elementos son reemplazados.
array2
El array del cual se extraerán los elementos.
...
Opcional. Más arrays desde los cuales se extraerán los elementos.
Devuelve un array, o NULL
en caso de error.
Ejemplo #1 Ejemplo de array_replace_recursive()
<?php
$base = array('cítricos' => array( "naranja") , 'bayas' => array("mora", "frambuesa"), );
$reemplazos = array('cítricos' => array('piña'), 'bayas' => array('arándano'));
$cesta = array_replace_recursive($base, $reemplazos);
print_r($cesta);
$cesta = array_replace($base, $reemplazos);
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 ) )
Ejemplo #2 array_replace_recursive() y comportamiento recursivo
<?php
$base = array('cítricos' => array("naranja") , 'bayas' => array("mora", "frambuesa"), 'otros' => 'banana' );
$reemplazos = array('cítricos' => 'piña', 'bayas' => array('arándano'), 'otros' => array('litchis'));
$reemplazos2 = array('cítricos' => array('piña'), 'bayas' => array('arándano'), 'otros' => 'litchis');
$cesta = array_replace_recursive($base, $reemplazos, $reemplazos2);
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 )