PHP Array Pop : guide complet
Découvrez array_pop() en PHP : syntaxe, valeur de retour, réindexation des clés et utilisation comme pile LIFO.
array_pop() supprime le dernier élément d'un array, le retourne et raccourcit le tableau d'un élément. C'est ainsi que vous utilisez un array PHP comme une pile — l'élément ajouté le plus récemment est le premier que vous retirez. Cette page couvre la syntaxe, ce que la fonction retourne, les effets de bord à connaître (réindexation numérique et pointeur interne), ainsi que les cas d'utilisation appropriés.
Ce que fait array_pop()
array_pop() est une fonction PHP intégrée qui :
- Supprime l'élément en fin de tableau,
- Retourne la valeur de cet élément supprimé, et
- Modifie le tableau en place — le tableau passé en argument est définitivement raccourci.
Si les clés du tableau sont numériques (0, 1, 2, …), elles sont renumérotées à partir de 0 après le pop. Les clés de type string restent inchangées. C'est le même comportement de réindexation qu'avec array_shift(), et c'est le principal point à retenir.
Syntaxe
array_pop(array &$array): mixed| Partie | Signification |
|---|---|
&$array | Le tableau depuis lequel retirer un élément, passé par référence — il est modifié directement. |
| valeur de retour | La valeur du dernier élément, ou null si le tableau est vide. |
Comme $array est passé par référence, vous ne pouvez pas appeler array_pop() sur un littéral ou le résultat d'une fonction — vous devez passer une variable contenant un array.
Supprimer le dernier élément
Retirez le dernier élément et capturez la valeur retournée :
array_pop() supprime "cherry", le retourne et laisse $fruits avec deux éléments :
cherry
Array
(
[0] => apple
[1] => banana
)Pop sur un array vide
Si le tableau est déjà vide, array_pop() retourne null. Avec les versions modernes de PHP, cela se fait silencieusement, vous pouvez donc vérifier le résultat en toute sécurité :
Résultat :
Array is empty
No element to popNotez qu'un null retourné est ambigu — vous ne pouvez pas distinguer « le tableau était vide » de « le dernier élément valait réellement null ». Lorsque cette distinction est importante, vérifiez count($array) avant d'appeler pop.
Utiliser array_pop() comme une pile
Associez array_pop() à array_push() (ou $array[] = ...) et vous obtenez une pile dernier entré, premier sorti (LIFO). Une boucle avec array_pop() vide le tableau depuis la fin :
<?php
$stack = [1, 2, 3, 4, 5];
while (count($stack) > 0) {
echo array_pop($stack) . " ";
}
?>Résultat — les éléments ressortent dans l'ordre inverse :
5 4 3 2 1 Les clés numériques sont réindexées
Lorsque vous retirez un élément d'un array à clés numériques puis ajoutez un nouvel élément avec $array[], le nouvel index continue depuis la séquence renumérotée, et non depuis la clé maximale d'origine :
<?php
$data = ["x" => 10, "y" => 20, "z" => 30];
$value = array_pop($data); // removes "z" => 30
echo $value . "\n"; // 30
print_r($data);
?>30
Array
(
[x] => 10
[y] => 20
)Les clés de type string restent inchangées. Avec les clés numériques, array_pop() les réinitialise à 0, 1, 2, …, ce qui est à surveiller si d'autres parties du code s'appuient sur des valeurs d'index spécifiques.
Fonctions associées
| Fonction | Ce qu'elle supprime / ajoute |
|---|---|
array_pop() | Supprime le dernier élément. |
array_push() | Ajoute un ou plusieurs éléments à la fin. |
array_shift() | Supprime le premier élément. |
array_unshift() | Ajoute un ou plusieurs éléments au début. |
array_slice() | Extrait une portion sans modifier l'original (dans son usage normal). |
Pour un rappel plus large sur le fonctionnement des tableaux, consultez PHP Arrays.
Résumé
array_pop()supprime et retourne le dernier élément d'un array en le modifiant par référence.- Un array vide produit
null— utilisezcount()si vous devez distinguer un array vide d'une vraie valeurnull. - C'est l'outil naturel pour le traitement de type pile (LIFO) et pour réduire un tableau d'un élément à la fois par la fin.
- Les clés numériques sont renumérotées à partir de
0; les clés string sont préservées.