PHP 8.1.0 RC 2 available for testing

array_merge

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

array_mergeFusionne plusieurs tableaux en un seul

Description

array_merge(array ...$arrays): array

array_merge() rassemble les éléments d'un ou de plusieurs tableaux en ajoutant les valeurs de l'un à la fin de l'autre. Le résultat est un tableau.

Si les tableaux d'entrées ont des clés en commun, alors, la valeur finale pour cette clé écrasera la précédente. Cependant, si les tableaux contiennent des clés numériques, la valeur finale n'écrasera pas la valeur originale, mais sera ajoutée.

Les clés numériques des tableaux d'entrées seront renumérotées en clés incrémentées partant de zéro dans le tableau fusionné.

Liste de paramètres

arrays

Liste de tableaux variable à fusionner.

Valeurs de retour

Retourne le tableau résultant. Si appellé sans arguments, retourne un tableau vide.

Historique

Version Description
7.4.0 Cette fonction peut désormais être appelée sans paramètres. Auparavant, au moins un paramètre était requis.

Exemples

Exemple #1 Exemple avec array_merge()

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

L'exemple ci-dessus va afficher :

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

Exemple #2 Exemple simple avec array_merge()

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

N'oubliez pas que les index numériques seront réindexés !

Array
(
    [0] => data
)

Si vous voulez ajouter des éléments du second tableau au premier sans pour autant écraser ou ré-indexer les éléments du premier, utilisez l'opérateur d'union + :

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

Les clés du premier tableau sont préservées. Si une clé existe dans les 2 tableaux, alors l'élément du premier sera utilisé et la clé correspondante du second sera ignorée.

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"
}

Exemple #3 Exemple avec array_merge() avec des types non-tableaux

<?php
$beginning 
'foo';
$end = array(=> 'bar');
$result array_merge((array)$beginning, (array)$end);
print_r($result);
?>

L'exemple ci-dessus va afficher :

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

Voir aussi

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