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ónarray_merge_recursive(array ...$arrays): arraySintaxis / 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 )