Saltar al contenido

Función de PHP: array_replace_recursive()

La función array_replace_recursive() de PHP es una herramienta poderosa para fusionar arrays de manera que se mantenga la estructura y las claves de los arrays originales. Opera reemplazando elementos en el primer array con elementos de los arrays subsiguientes de forma recursiva. Esta función puede ser particularmente útil al trabajar con arrays de arrays, ya que permite modificar fácilmente arrays anidados sin perder datos.

Sintaxis

La sintaxis de la función array_replace_recursive() es sencilla, donde el primer argumento es el array que se modificará y los argumentos subsiguientes son los arrays desde los cuales se fusionarán los elementos en el primer array.

Sintaxis de la función array_replace_recursive en PHP

php
array_replace_recursive ( array &$array1, array $array2 [, array ...$arrayN ] ) : array

Cómo funciona

La función array_replace_recursive() funciona iterando sobre todos los elementos de los arrays pasados como argumentos. Para cada elemento, la función verificará si la clave existe en el primer array. Si la clave no existe, el elemento simplemente se agregará al primer array. Si la clave sí existe, la función verificará si el valor es un array. Si lo es, la función se llamará a sí misma de forma recursiva con el valor actual en el primer array y el valor correspondiente en el segundo array como argumentos. Si el valor no es un array, simplemente se reemplazará con el valor del segundo array.

Este proceso se repite para todos los arrays subsiguientes pasados como argumentos, agregando o reemplazando elementos en el primer array según sea necesario. El resultado final es un único array que resulta de fusionar todos los elementos de los arrays de entrada. Nota: A diferencia de array_merge_recursive(), esta función reemplaza las claves numéricas en lugar de fusionarlas por índice.

Ejemplos

A continuación se muestran algunos ejemplos de cómo se puede utilizar la función array_replace_recursive() en la práctica:

Ejemplo de uso de la función array_replace_recursive en PHP

php
<?php

$array1 = ['a' => ['b' => 'c']];
$array2 = ['a' => ['b' => 'd']];

$result = array_replace_recursive($array1, $array2);

print_r($result);

?>

La salida de este código será:


console
Array
(
    [a] => Array
        (
            [b] => d
        )
)

Como puedes ver, el valor de la clave "b" en el primer array ha sido reemplazado por el valor correspondiente del segundo array.

Otro ejemplo:

Otro ejemplo de uso de la función array_replace_recursive en PHP

php
<?php

$array1 = ['a' => ['b' => 'c']];
$array2 = ['a' => 'd'];

$result = array_replace_recursive($array1, $array2);

print_r($result);

?>

La salida de este código será:


console
Array
(
    [a] => d
)

En este caso, la clave "a" en el segundo array ha reemplazado el valor correspondiente en el primer array, incluyendo el array anidado.

Conclusión

En conclusión, la función array_replace_recursive() de PHP proporciona una forma conveniente de fusionar arrays mientras se preserva su estructura y claves originales. Es particularmente valiosa para actualizar datos de configuración anidados o fusionar conjuntos de datos estructurados sin iteración manual.

Práctica

¿Qué hace la función array_replace_recursive() en PHP?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.