PHP Array Pop: O Guia Definitivo
Guia completo sobre a função array_pop() do PHP: sintaxe, valor de retorno, reindexação de chaves e exemplos práticos de uso como pilha.
array_pop() remove o último elemento de um array, retorna-o e reduz o array em um elemento. É assim que você trata um array PHP como uma pilha — o item adicionado mais recentemente é o primeiro a ser retirado. Esta página aborda a sintaxe, o que a função retorna, os efeitos colaterais que você precisa conhecer (reindexação numérica e o ponteiro interno) e quando utilizá-la.
O que array_pop() faz
array_pop() é uma função PHP embutida que:
- Remove o elemento no final do array,
- Retorna o valor desse elemento removido, e
- Modifica o array diretamente — o array passado é permanentemente reduzido.
Se as chaves do array forem numéricas (0, 1, 2, …), elas são renumeradas a partir de 0 após o pop. Chaves string permanecem intactas. Este é o mesmo comportamento de reindexação que você obtém com array_shift(), e é o principal "detalhe" a ser lembrado.
Sintaxe
array_pop(array &$array): mixed| Parte | Significado |
|---|---|
&$array | O array do qual remover o elemento, passado por referência — é modificado diretamente. |
| valor de retorno | O valor do último elemento, ou null se o array estiver vazio. |
Como $array é passado por referência, você não pode chamar array_pop() em um literal ou no resultado de uma função — é preciso passar uma variável que contém um array.
Removendo o último elemento
Remova o último item e capture o valor retornado:
array_pop() remove "cherry", retorna-o e deixa $fruits com dois elementos:
cherry
Array
(
[0] => apple
[1] => banana
)Fazendo pop em um array vazio
Se o array já estiver vazio, array_pop() retorna null. No PHP moderno, isso ocorre silenciosamente, então você pode verificar o resultado com segurança:
Saída:
Array is empty
No element to popNote que um null retornado é ambíguo — você não consegue distinguir "o array estava vazio" de "o último elemento realmente era null." Quando essa distinção for importante, verifique count($array) antes de fazer o pop.
Usando array_pop() como uma pilha
Combine array_pop() com array_push() (ou $array[] = ...) e você terá uma pilha LIFO (último a entrar, primeiro a sair). Iterar com array_pop() esvazia o array pelo final:
<?php
$stack = [1, 2, 3, 4, 5];
while (count($stack) > 0) {
echo array_pop($stack) . " ";
}
?>Saída — os elementos são retornados em ordem inversa:
5 4 3 2 1 Chaves numéricas são reindexadas
Quando você faz pop em um array com chaves numéricas e depois adiciona um novo elemento com $array[], o novo índice continua a partir da sequência renumerada, não do valor máximo original:
<?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
)Chaves string permanecem intactas. Com chaves numéricas, array_pop() as renumera para 0, 1, 2, …, o que é algo a observar se outro código depender de valores de índice específicos.
Funções relacionadas
| Função | O que remove / adiciona |
|---|---|
array_pop() | Remove o último elemento. |
array_push() | Adiciona um ou mais elementos ao final. |
array_shift() | Remove o primeiro elemento. |
array_unshift() | Adiciona um ou mais elementos ao início. |
array_slice() | Extrai uma parte sem modificar o original (quando chamada normalmente). |
Para uma revisão mais ampla sobre como os arrays funcionam, consulte PHP Arrays.
Resumo
array_pop()remove e retorna o último elemento de um array, modificando-o por referência.- Um array vazio retorna
null— usecount()se precisar distinguir array vazio de um valornullreal. - É a ferramenta natural para processamento no estilo pilha (LIFO) e para reduzir o final de um array um item por vez.
- Chaves numéricas são renumeradas a partir de
0; chaves string são preservadas.