W3docs

La función array_reverse() de PHP

Aprende a usar array_reverse() en PHP para invertir el orden de los elementos de un array, con ejemplos de claves numéricas y asociativas.

La función array_reverse() de PHP devuelve un nuevo array con los elementos del array dado en orden inverso. Es una función incorporada (no requiere extensiones) y funciona tanto con arrays indexados como con arrays asociativos. Es la herramienta ideal cuando necesitas una vista de los datos de "último a primero", por ejemplo, para mostrar los comentarios más recientes primero, recorrer una lista hacia atrás o deshacer un ordenamiento.

Esta página cubre la sintaxis, el manejo de claves, el parámetro $preserve_keys y los errores más comunes.

Sintaxis

array_reverse(array $array, bool $preserve_keys = false): array
ParámetroRequeridoDescripción
$arrayEl array a invertir.
$preserve_keysNoSi es true, las claves numéricas se mantienen asociadas a sus valores en lugar de renumerarse. Las claves string siempre se conservan, independientemente de este parámetro. Por defecto es false.

La función devuelve un nuevo array; el original nunca se modifica.

¿Cómo funciona la función array_reverse() de PHP?

array_reverse() recorre el array de entrada desde el último elemento hasta el primero y construye un nuevo array en ese orden. Por defecto, las claves enteras se renumeran comenzando desde 0, mientras que las claves string se mantienen tal como están. Pasa true como segundo argumento cuando necesites que las claves numéricas originales permanezcan asociadas a sus valores.

A continuación se muestra el caso más sencillo: invertir un array indexado:

Ejemplo PHP del uso de la función array_reverse

php— editable, runs on the server

Salida:

Array
(
    [0] => cherry
    [1] => banana
    [2] => apple
)

Como podemos ver, el orden de los elementos en $reversed_array es el inverso del orden de los elementos en $original_array.

Uso de array_reverse() con arrays asociativos

Como se mencionó anteriormente, la función array_reverse() también puede usarse con arrays asociativos. Al utilizarla con arrays asociativos, el orden de los elementos se invierte, pero las claves string permanecen sin cambios por defecto.

A continuación se muestra un ejemplo de cómo se puede usar la función array_reverse() con un array asociativo:

Ejemplo PHP de cómo usar la función array_reverse() con un array asociativo

php— editable, runs on the server

Salida:

Array
(
    [c] => cherry
    [b] => banana
    [a] => apple
)

Como podemos ver, las claves de los elementos en $reversed_array siguen correspondiendo a las claves originales, pero el orden de los elementos está invertido. Las claves string siempre se conservan, por lo que el parámetro $preserve_keys no tiene efecto en este caso.

Conservar las claves numéricas

Para arrays indexados (con claves numéricas), array_reverse() renumera las claves desde 0 por defecto. Esto suele ser lo que se desea, pero en ocasiones el índice original tiene significado: un número de línea, una posición, un ID. Pasa true como segundo argumento para mantener esas claves asociadas a sus valores:

Ejemplo PHP de cómo conservar las claves numéricas con array_reverse()

<?php

$data = array(10 => "ten", 20 => "twenty", 30 => "thirty");

// Default: numeric keys are renumbered from 0
print_r(array_reverse($data));

// preserve_keys = true: original numeric keys are kept
print_r(array_reverse($data, true));

?>

Salida:

Array
(
    [0] => thirty
    [1] => twenty
    [2] => ten
)
Array
(
    [30] => thirty
    [20] => twenty
    [10] => ten
)

En el primer array los valores están invertidos pero las claves se han reiniciado; en el segundo, las claves 30, 20 y 10 viajan junto con sus valores.

Errores comunes

  • No modifica el array original. array_reverse($arr) devuelve un nuevo array — no invierte $arr en su lugar. Asegúrate siempre de capturar el valor de retorno: $arr = array_reverse($arr);.
  • No es un ordenamiento. Invertir solo cambia el orden actual. Para obtener un orden descendente, ordena primero (por ejemplo, con rsort() o arsort()) en lugar de invertir.
  • Las claves string ignoran $preserve_keys. El parámetro solo afecta a las claves enteras; las claves string se conservan siempre.
  • Invertir una cadena. array_reverse() solo funciona con arrays. Para invertir una cadena, usa strrev() en su lugar.

Funciones relacionadas

Conclusión

En conclusión, la función array_reverse() es una función potente y versátil que permite invertir fácilmente el orden de los elementos de un array. Ya sea que trabajes con arrays indexados o arrays asociativos, la función array_reverse() puede ayudarte a manipular tus arrays de la manera que necesitas. Con su sintaxis sencilla y su comportamiento directo, la función array_reverse() es una herramienta esencial para cualquier programador PHP que trabaje con arrays.

Práctica

Práctica
¿Cuál de las siguientes afirmaciones es verdadera sobre la función array_reverse() en PHP?
¿Cuál de las siguientes afirmaciones es verdadera sobre la función array_reverse() en PHP?
Was this page helpful?