PHP 8.1.0 RC 2 available for testing

array_merge

(PHP 4, PHP 5, PHP 7, PHP 8)

array_mergeCombina dos o más arrays

Descripción

array_merge(array $array1, array $... = ?): array

Combina los elementos de uno o más arrays juntándolos de modo que los valores de uno se anexan al final del anterior. Retorna el array resultante.

Si los arrays de entrada tienen las mismas claves de tipo string, el último valor para esa clave sobrescribirá al anterior. Sin embargo, los arrays que contengan claves numéricas, el último valor no sobrescribirá el valor original, sino que será añadido al final.

Los valores del array de entrada con claves numéricas serán renumeradas con claves incrementales en el array resultante, comenzando desde cero.

Parámetros

array1

Array inicial a combinar.

...

Lista variable de arrays para combinar.

Valores devueltos

Retorna el array resultante.

Ejemplos

Ejemplo #1 Ejemplo de array_merge()

<?php
$array1    
= array("color" => "red"24);
$array2    = array("a""b""color" => "green""shape" => "trapezoid"4);
$resultado array_merge($array1$array2);
print_r($resultado);
?>

El resultado del ejemplo sería:

Array
(
    [color] => green
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => trapezoid
    [4] => 4
)

Ejemplo #2 Ejemplo de sencillo de array_merge()

<?php
$array1    
= array();
$array2    = array(=> "data");
$resultado array_merge($array1$array2);
?>

¡No olvidarse de que las claves numéricas serán renumeradas!

Array
(
    [0] => data
)

Para anexar elementos del segundo array al primer array entretanto no se sobrescriban los elementos del primer array y no se reindexe, se ha de utilizar el operador + de unión de arrays.

<?php
$array1    
= array(=> 'zero_a'=> 'two_a'=> 'three_a');
$array2    = array(=> 'one_b'=> 'three_b'=> 'four_b');
$resultado $array1 $array2;
var_dump($resultado);
?>

Las claves del primer array se preservaran. Si una clave existe en ambos arrays, se usará el elemento del primer array, y el elemento de la clave coincidente del segundo array será ignorado.

array(5) {
  [0]=>
  string(6) "zero_a"
  [2]=>
  string(5) "two_a"
  [3]=>
  string(7) "three_a"
  [1]=>
  string(5) "one_b"
  [4]=>
  string(6) "four_b"
}

Ejemplo #3 array_merge() con tipos que no son array

<?php
$comienzo 
'foo';
$fin = array(=> 'bar');
$resultado array_merge((array)$comienzo, (array)$fin);
print_r($resultado);
?>

El resultado del ejemplo sería:

    Array
    (
        [0] => foo
        [1] => bar
    )

Ver también

add a note add a note

User Contributed Notes 2 notes

up
263
Julian Egelstaff
12 years ago
In some situations, the union operator ( + ) might be more useful to you than array_merge.  The array_merge function does not preserve numeric key values.  If you need to preserve the numeric keys, then using + will do that.

ie:

<?php

$array1
[0] = "zero";
$array1[1] = "one";

$array2[1] = "one";
$array2[2] = "two";
$array2[3] = "three";

$array3 = $array1 + $array2;

//This will result in::

$array3 = array(0=>"zero", 1=>"one", 2=>"two", 3=>"three");

?>

Note the implicit "array_unique" that gets applied as well.  In some situations where your numeric keys matter, this behaviour could be useful, and better than array_merge.

--Julian
up
3
fsb at thefsb dot org
1 year ago
We no longer need array_merge() as of PHP 7.4.

    [...$a, ...$b]

does the same as

    array_merge($a, $b)

and can be faster too.

https://wiki.php.net/rfc/spread_operator_for_array#advantages_over_array_merge
To Top