Blog de programación, errores, soluciones

Chose Language:
Author: Admin/Publisher |finished | checked

PHP array_merge_recursive

La función PHP array_merge_recursive realiza el merge del array recursivamente «combina» los array dados y este combina lo pongo entre comillas porque merge es más parecido a una fusión, no hay una palabra en español para expresarlo correctamente.

Description / Descripción
 array_merge_recursive(array ...$arrays): array
Sintaxis / Sintax
$rm_array = array_merge_recursive($array1,$array2)

casos

La función array_merge_recursive es similar a array_merge sus casos son iguales prácticamente, repasemos esto antes de proseguir:

Arrays asociativos

Si los arrays comparados tienen la misma clave, estas se unirán creando un array que contendrá los valores ejemplo:

Supongamos que la key es "name" y un array tiene "name" => "Pepe" y el otro "name"=>"Marta" esto en el nuevo array quedara de la siguiente manera:

"name" => Array(
  [0]=>"Pepe",
  [1]=>"Marta"
)

Esto se hace de forma recursiva, por tanto, si hay uno de los valores que es un array la funcion también ara un merge con la entrada correspondiente de otro array también Lo veremos en los ejemplos

Arrays indexado o numérico

Si los array tienen la misma clave numérica, esta no se sobreescribirá sino que en el nuevo array será una clave nueva añadida al final

Parámetros

...$arrays -son los arrays a los que aplicaremos array_merge_recursive

Retornos

array – este array será el resultado de combinar los array entre ellos. Si no hay argumentos, el array será vacío []

Ejemplos

En el primer ejemplo veremos el caso en que tenemos 2 array asociativos y dentro de estos tenemos arrays

Ejemplo de array_merge_recursive con arrays internos
$array1 = array(
    "person" => array(
        "name" => "John",
        "age" => 30,
        "address" => array(
            "city" => "Example City",
            "country" => "Example Country"
        )
    ),
    "hobbies" => array("reading", "traveling", "coding")
);

$array2 = array(
    "person" => array(
        "name" => "Jane",
        "address" => array(
            "city" => "Another City"
        )
    ),
    "hobbies" => array("swimming", "photography")
);

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

print_r($result);
Array
(
    [person] => Array
        (
            [name] => Array
                (
                    [0] => John
                    [1] => Jane
                )

            [age] => 30
            [address] => Array
                (
                    [city] => Array
                        (
                            [0] => Example City
                            [1] => Another City
                        )

                    [country] => Example Country
                )

        )

    [hobbies] => Array
        (
            [0] => reading
            [1] => traveling
            [2] => coding
            [3] => swimming
            [4] => photography
        )

)

Como segundo ejemplo tendremos en cuenta los casos de un array indexado o numérico

Ejemplo de array_merge_recursive con 2 array indexados
$array1 = array("apple", "banana", "orange");
$array2 = array("grape", "kiwi", "melon");

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

print_r($result);
Array
(
    [0] => apple
    [1] => banana
    [2] => orange
    [3] => grape
    [4] => kiwi
    [5] => melon
)
Category: php
Something wrong? If you found an error or mistake in the content you can contact me on Twitter | @luisg2249_luis.
Last 4 post in same category