Fonction array_push en PHP : Guide complet
Découvrez la fonction array_push de PHP pour ajouter des éléments à un array, avec la syntaxe, les cas d'usage et les fonctions associées.
array_push() ajoute un ou plusieurs éléments à la fin d'un array, en le traitant comme une pile. C'est la façon habituelle d'agrandir une liste en PHP ; la fonction renvoie le nouveau nombre d'éléments une fois les valeurs ajoutées.
Cette page couvre la syntaxe, la valeur renvoyée par array_push(), son comportement avec les arrays associatifs et vides, le raccourci [] plus rapide, ainsi que les fonctions associées pour supprimer ou préfixer des éléments.
Syntaxe
array_push(array &$array, mixed ...$values): int$array— l'array à modifier. Il est passé par référence (&), de sorte que la variable d'origine est modifiée sur place ; il n'est pas nécessaire de la réaffecter.$values— une ou plusieurs valeurs à ajouter, dans l'ordre indiqué.- Valeur de retour — la nouvelle longueur de l'array (un entier).
Exemple de base
L'exemple ci-dessous part de trois fruits et en ajoute deux autres :
Les nouvelles valeurs sont ajoutées dans l'ordre, et $count contient la longueur mise à jour :
5
Array
(
[0] => apple
[1] => banana
[2] => cherry
[3] => orange
[4] => peach
)Le raccourci [] pour une seule valeur
Si vous n'avez besoin d'ajouter qu'un seul élément, la syntaxe $array[] = $value fait la même chose et est plus rapide, car elle évite le surcoût d'un appel de fonction :
<?php
$colors = array("red", "green");
$colors[] = "blue"; // same as array_push($colors, "blue")
print_r($colors);
?>Array
(
[0] => red
[1] => green
[2] => blue
)Utilisez array_push() lorsque vous devez ajouter plusieurs valeurs à la fois ; utilisez [] pour une seule valeur.
Comportement avec les clés
array_push() réindexe toujours les valeurs ajoutées avec de nouvelles clés entières, en continuant à partir de la clé entière la plus haute de l'array. Les clés string (associatives) existantes restent inchangées :
<?php
$data = array("name" => "Ann", 5 => "five");
array_push($data, "added");
print_r($data);
?>Array
(
[name] => Ann
[5] => five
[6] => added
)Remarquez que le nouvel élément est devenu [6] — un de plus que la plus grande clé entière (5), et non [2].
Ajout dans un array vide
Il n'est pas nécessaire de déclarer des clés au préalable. L'ajout dans un array vide commence la numérotation à 0 :
<?php
$list = array();
array_push($list, "first", "second");
print_r($list);
?>Array
(
[0] => first
[1] => second
)Erreurs courantes
- Modification sur place. Comme l'array est passé par référence, n'écrivez pas
$arr = array_push($arr, $x)— cela remplacerait votre array par la longueur entière. Appelezarray_push($arr, $x)sur sa propre ligne. - L'argument doit être une variable. Étant donné que le paramètre est par référence, vous ne pouvez pas pousser sur un littéral comme
array_push(array(), "x"). - Utilisez
[]pour une seule valeur. Pour un seul élément,$arr[] = $valueest plus lisible et légèrement plus rapide.
Fonctions associées
array_pop()— supprime et renvoie le dernier élément (l'opposé de l'ajout).array_unshift()— ajoute des éléments au début d'un array.array_shift()— supprime le premier élément.array_merge()— combine deux arrays ou plus en un seul.array_splice()— insère ou supprime des éléments à n'importe quelle position.