W3docs

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
ParteSignificado
&$arrayEl array del que se extrae, pasado por referencia — se modifica directamente.
valor de retornoEl 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:

php— editable, runs on the server

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:

php— editable, runs on the server

Salida:

Array is empty
No element to pop

Ten 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ónQué 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 — usa count() si necesitas distinguir un array vacío de un valor null real.
  • 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.

Práctica

Práctica
¿Cuál es la función de array_pop() en PHP?
¿Cuál es la función de array_pop() en PHP?
Was this page helpful?