Como unir dos o más arrays en php
|La función array_merge() nos ayuda a hacer la union de dos o más arreglos en uno solo, las opciones del array unificado serán ordenadas según el orden original.
En el caso que alguno de los arreglos compartan una llave el valor de esta será sustituida por el último encontrado solo si la llave no es numérica. Ejemplo:
1 2 3 4 5 6 7 8 9 10 |
<?php $array1 = ['a'=>1, 'b'=>2, 'c'=>3]; $array2 = ['c'=>4, 'd'=>5, 'e'=>6]; $array3 = ['f'=>7, 'g'=>8, 'h'=>9]; $merge1 = array_merge($array1, $array2, $array3); echo "<pre>"; print_r($merge1); echo "</pre>"; |
Resultado:
1 2 3 4 5 6 7 8 9 10 11 |
Array ( [a] => 1 [b] => 2 [c] => 4 [d] => 5 [e] => 6 [f] => 7 [g] => 8 [h] => 9 ) |
También podemos contar con la funcion array_merge_recursive() que esta al igual que la anterior une los arreglos, salvo que si encuentra llaves repetidas entonces crear un arreglo adicional con los valores y los asigna a la llave. Ejemplo:
1 2 3 4 5 6 7 8 9 10 |
<?php $array1 = ['a'=>1, 'b'=>2, 'c'=>3]; $array2 = ['c'=>4, 'd'=>5, 'e'=>6]; $array3 = ['f'=>7, 'g'=>8, 'h'=>9]; $merge2 = array_merge_recursive($array1, $array2, $array3); echo "<pre>"; print_r($merge2); echo "</pre>"; |
Resultado:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Array ( [a] => 1 [b] => 2 [c] => Array ( [0] => 3 [1] => 4 ) [d] => 5 [e] => 6 [f] => 7 [g] => 8 [h] => 9 ) |