PHP Array Pop: La guida completa
Guida completa alla funzione array_pop() di PHP: sintassi, valori restituiti, effetti collaterali e casi d'uso pratici.
array_pop() rimuove l'ultimo elemento da un array, lo restituisce e accorcia l'array di uno. È il modo in cui si tratta un array PHP come uno stack — l'elemento aggiunto più di recente è il primo che si recupera. Questa pagina tratta la sintassi, cosa restituisce, gli effetti collaterali da conoscere (ri-numerazione delle chiavi e il puntatore interno) e quando utilizzarla.
Cosa fa array_pop()
array_pop() è una funzione PHP integrata che:
- Rimuove l'elemento alla fine dell'array,
- Restituisce il valore di quell'elemento rimosso, e
- Modifica l'array in-place — l'array passato viene accorciato definitivamente.
Se le chiavi dell'array sono numeriche (0, 1, 2, …), vengono rinumerate a partire da 0 dopo il pop. Le chiavi string vengono lasciate intatte. Questo è lo stesso comportamento di ri-numerazione che si ottiene da array_shift(), ed è il principale "gotcha" da ricordare.
Sintassi
array_pop(array &$array): mixed| Parte | Significato |
|---|---|
&$array | L'array da cui estrarre, passato per riferimento — viene modificato direttamente. |
| valore restituito | Il valore dell'ultimo elemento, oppure null se l'array è vuoto. |
Poiché $array viene passato per riferimento, non è possibile chiamare array_pop() su un letterale o sul risultato di una funzione — è necessario passare una variabile che contenga un array.
Rimozione dell'ultimo elemento
Estrai l'ultimo elemento e cattura il valore restituito:
array_pop() rimuove "cherry", lo restituisce e lascia $fruits con due elementi:
cherry
Array
(
[0] => apple
[1] => banana
)Pop su un array vuoto
Se l'array è già vuoto, array_pop() restituisce null. Nelle versioni moderne di PHP lo fa silenziosamente, quindi puoi verificare il risultato in modo sicuro:
Output:
Array is empty
No element to popNota che un null restituito è ambiguo — non puoi distinguere "l'array era vuoto" da "l'ultimo elemento era davvero null." Quando questa distinzione è importante, controlla count($array) prima del pop.
Usare array_pop() come stack
Abbina array_pop() a array_push() (o $array[] = ...) e avrai uno stack last-in, first-out (LIFO). Iterare con array_pop() svuota l'array dalla fine:
<?php
$stack = [1, 2, 3, 4, 5];
while (count($stack) > 0) {
echo array_pop($stack) . " ";
}
?>Output — gli elementi vengono restituiti in ordine inverso:
5 4 3 2 1 Le chiavi numeriche vengono reindicizzate
Quando si esegue il pop da un array con chiavi numeriche e poi si aggiunge un nuovo elemento con $array[], il nuovo indice continua dalla sequenza rinumerata, non dal valore massimo originale:
<?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
)Le chiavi string sopravvivono intatte. Con chiavi numeriche, array_pop() le ribasa a 0, 1, 2, …, il che è importante da tenere a mente se altro codice si affida a valori di indice specifici.
Funzioni correlate
| Funzione | Cosa rimuove / aggiunge |
|---|---|
array_pop() | Rimuove l'ultimo elemento. |
array_push() | Aggiunge uno o più elementi alla fine. |
array_shift() | Rimuove il primo elemento. |
array_unshift() | Aggiunge uno o più elementi all'inizio. |
array_slice() | Estrae una porzione senza modificare l'originale (quando chiamata normalmente). |
Per un ripasso più ampio su come funzionano gli array, vedi PHP Arrays.
Riepilogo
array_pop()rimuove e restituisce l'ultimo elemento di un array, modificandolo per riferimento.- Un array vuoto produce
null— usacount()se devi distinguere un array vuoto da un vero valorenull. - È lo strumento naturale per l'elaborazione in stile stack (LIFO) e per ridurre la coda di un array un elemento alla volta.
- Le chiavi numeriche vengono rinumerate da
0; le chiavi string vengono preservate.