PHP Array Pop: La guía definitiva
Guía completa sobre array_pop() en PHP: sintaxis, valores de retorno, efectos secundarios y casos de uso prácticos.
array_pop() elimina el último elemento de un array, lo devuelve y reduce el array en uno. Así es como se trata un array de PHP como una pila — el elemento agregado más recientemente es el primero que se extrae. Esta página cubre la sintaxis, lo que devuelve, los efectos secundarios que debes conocer (renumeración de claves y el puntero interno), y cuándo utilizarlo.
Qué hace array_pop()
array_pop() es una función integrada de PHP que:
- Elimina el elemento al final del array,
- Devuelve el valor de ese elemento eliminado, y
- Modifica el array en su lugar — el array pasado se acorta permanentemente.
Si las claves del array son numéricas (0, 1, 2, …), se renumeran comenzando desde 0 después de la operación. Las claves de tipo string se dejan intactas. Este es el mismo comportamiento de renumeración que obtienes con array_shift(), y es el principal "truco" a recordar.
Sintaxis
array_pop(array &$array): mixed| Parte | Significado |
|---|---|
&$array | El array del que se extrae, pasado por referencia — se modifica directamente. |
| valor de retorno | El valor del último elemento, o null si el array está vacío. |
Debido a que $array se pasa por referencia, no puedes llamar a array_pop() sobre un literal o el resultado de una función — debes pasar una variable que contenga un array.
Eliminar el último elemento
Extrae el último elemento y captura el valor devuelto:
array_pop() elimina "cherry", lo devuelve y deja $fruits con dos elementos:
cherry
Array
(
[0] => apple
[1] => banana
)Extraer de un array vacío
Si el array ya está vacío, array_pop() devuelve null. En versiones modernas de PHP esto ocurre de forma silenciosa, por lo que puedes verificar el resultado de manera segura:
Salida:
Array is empty
No element to popTen en cuenta que un null devuelto es ambiguo — no puedes distinguir "el array estaba vacío" de "el último elemento realmente era null". Cuando esa distinción importa, comprueba count($array) antes de extraer.
Usar array_pop() como una pila
Combina array_pop() con array_push() (o $array[] = ...) y tendrás una pila de tipo último en entrar, primero en salir (LIFO). Iterar con array_pop() vacía el array desde el final:
<?php
$stack = [1, 2, 3, 4, 5];
while (count($stack) > 0) {
echo array_pop($stack) . " ";
}
?>Salida — los elementos se recuperan en orden inverso:
5 4 3 2 1 Las claves numéricas se reindexan
Cuando extraes de un array con claves numéricas y luego agregas un nuevo elemento con $array[], el nuevo índice continúa desde la secuencia renumerada, no desde la clave máxima 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
)Las claves de tipo string se mantienen intactas. Con claves numéricas, array_pop() las reindexará a 0, 1, 2, …, algo a tener en cuenta si otro código depende de valores de índice específicos.
Funciones relacionadas
| Función | Qué elimina / agrega |
|---|---|
array_pop() | Elimina el último elemento. |
array_push() | Agrega uno o más elementos al final. |
array_shift() | Elimina el primer elemento. |
array_unshift() | Agrega uno o más elementos al principio. |
array_slice() | Extrae una porción sin modificar el original (cuando se llama normalmente). |
Para un repaso más amplio sobre cómo funcionan los arrays, consulta PHP Arrays.
Resumen
array_pop()elimina y devuelve el último elemento de un array, modificándolo por referencia.- Un array vacío produce
null— usacount()si necesitas distinguir un array vacío de un valornullreal. - Es la herramienta natural para el procesamiento tipo pila (LIFO) y para reducir el final de un array elemento a elemento.
- Las claves numéricas se renumeran desde
0; las claves de tipo string se conservan.