W3docs

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
ParteSignificato
&$arrayL'array da cui estrarre, passato per riferimento — viene modificato direttamente.
valore restituitoIl 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:

php— editable, runs on the server

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:

php— editable, runs on the server

Output:

Array is empty
No element to pop

Nota 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

FunzioneCosa 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.

  • array_pop() rimuove e restituisce l'ultimo elemento di un array, modificandolo per riferimento.
  • Un array vuoto produce null — usa count() se devi distinguere un array vuoto da un vero valore null.
  • È 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.

Pratica

Pratica
Qual è la funzione di array_pop() in PHP?
Qual è la funzione di array_pop() in PHP?
Was this page helpful?