array_replace_recursive

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

array_replace_recursiveSustituye recursivamente en el primer array los elementos de los otros arrays proporcionados

Descripción

array_replace_recursive(array $array, array ...$replacements): array

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.

Parámetros

array

El array en el cual los elementos son sustituidos.

replacements

Arrays desde los cuales los elementos pueden ser extraídos.

Valores devueltos

Devuelve un array.

Ejemplos

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
)

Ver también