W3docs

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 :

php— editable, runs on the server

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. Appelez array_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[] = $value est 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.

Pratique

Pratique
Que fait la fonction array_push en PHP ?
Que fait la fonction array_push en PHP ?
Was this page helpful?