Funciones de Arrays
PHP Manual

array_replace_recursive

(PHP 5 >= 5.3.0)

array_replace_recursiveReemplaza los elementos de los arrays pasados al primer array de forma recursiva

Descripción

array array_replace_recursive ( array $array , array $array1 [, array $... ] )

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 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 array es escalar, será reemplazado por el valor de array1, que puede ser escalar o un array. Cuando los valores de array y array1 son arrays, array_replace_recursive() reemplazará sus respectivos valores recursivamente.

Parámetros

array

El array cuyos elementos son reemplazados.

array1

El array del cual se extraerán los elementos.

...

Opcional. Más arrays desde los cuales se extraerán los elementos.

Valores devueltos

Devuelve un array, o NULL en caso de error.

Ejemplos

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
)

Ver también


Funciones de Arrays
PHP Manual