W3docs

Función PHP array_values(): Guía Completa

Guía completa de la función array_values() de PHP: qué hace, cómo funciona y ejemplos prácticos de uso.

La función array_values() devuelve todos los valores de un array, reindexados con claves enteras consecutivas que comienzan desde 0. Es una de las funciones auxiliares de array más simples y utilizadas en PHP: cuando un array tiene huecos en sus claves, o claves de tipo string que ya no necesitas, array_values() te devuelve un array limpio en forma de lista. Esta página cubre su sintaxis, cuándo utilizarla, cómo se compara con funciones relacionadas y ejemplos ejecutables.

¿Qué es la función array_values()?

array_values() es una función integrada de PHP que toma un array y devuelve un nuevo array con todos sus valores. El array original no se modifica. El array devuelto siempre utiliza claves enteras secuenciales (0, 1, 2, …), y las claves originales — ya sean strings o enteros no secuenciales — se descartan. El orden relativo de los valores se preserva.

Sintaxis y valor de retorno

array_values(array $array): array
  • $array — el array de entrada cuyos valores deseas extraer.
  • Devuelve un array indexado con todos los valores, reclaveados desde 0.

¿Cómo funciona array_values()?

La sintaxis es sencilla. A continuación se muestra un ejemplo básico:

php— editable, runs on the server

La salida de este código sería:

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

Como puedes ver, la función array_values() toma el array de entrada $input y devuelve un nuevo array $output con todos los valores de $input, con nuevas claves numéricas que comienzan desde cero. Las claves originales del array de entrada se descartan.

¿Por qué usar array_values()?

La función array_values() puede ser útil en diversas situaciones. Por ejemplo, si tienes un array asociativo con claves no secuenciales, puede que quieras usar array_values() para crear un nuevo array con claves numéricas secuenciales. Esto puede ser útil si necesitas realizar operaciones sobre los valores del array original que requieren claves secuenciales, como ordenar o buscar.

Otro caso de uso de array_values() es cuando necesitas eliminar las claves de un array pero conservar el orden de los valores. Si simplemente usas array_values() sobre el array original, el nuevo array tendrá el mismo orden que el original, pero con claves numéricas que comienzan desde cero.

Comparación de array_values() con otras funciones PHP

Además de array_values(), existen otras funciones PHP que realizan tareas similares. A continuación se muestra una breve comparación:

  • array_keys(): Devuelve un array con todas las claves del array de entrada — la imagen especular de array_values().
  • array_flip(): Intercambia todas las claves con sus valores asociados.
  • array_combine(): Crea un nuevo array usando un array para las claves y otro para los valores.
  • array_column(): Devuelve los valores de una sola columna de un array multidimensional.

Si bien estas funciones son útiles por derecho propio, tienen casos de uso distintos. array_keys() y array_flip() trabajan con las claves de un array, mientras que array_combine() combina dos arrays en uno. Para obtener más información sobre los arrays en general, consulta el capítulo PHP Arrays.

Buenas prácticas para usar array_values()

A continuación se presentan algunos consejos y buenas prácticas para usar array_values() de manera efectiva:

  • Ten en cuenta que array_values() descarta las claves originales del array de entrada. Si necesitas preservar las claves, usa una función diferente, como array_keys().
  • Si tienes un array con claves no secuenciales, usa array_values() para crear un nuevo array con claves secuenciales antes de realizar operaciones que las requieran.
  • Usa array_values() para eliminar las claves de un array conservando el orden de los valores.
  • Al trabajar con arrays de gran tamaño, ten en cuenta que crear un nuevo array con array_values() puede consumir una cantidad significativa de memoria. En estos casos, considera usar métodos alternativos que no requieran crear un nuevo array.
  • Usa buenas convenciones de nomenclatura para tus variables y así hacer tu código más legible y comprensible.

Ejemplos prácticos de uso de array_values()

Veamos ahora algunos ejemplos prácticos del uso de array_values() en código PHP.

Ejemplo 1: Eliminar claves no numéricas de un array

Supón que tienes un array asociativo con claves no numéricas y quieres eliminar las claves y crear un nuevo array con claves numéricas secuenciales. Así es como puedes hacerlo usando array_values():

Uso de la función array_values de PHP con array asociativo

php— editable, runs on the server

La salida de este código sería:

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

Como puedes ver, array_values() ha creado un nuevo array con claves numéricas secuenciales, descartando las claves no numéricas originales.

Ejemplo 2: Reindexar un array tras filtrar

Este es el caso de uso más común en el mundo real de array_values(). Funciones como array_filter() preservan las claves originales, por lo que eliminar elementos deja huecos en la numeración. Llamar a array_values() después te proporciona una lista limpia sin huecos:

Reindexar un array PHP tras array_filter()

php— editable, runs on the server

La salida de este código sería:

Array
(
    [2] => 10
    [3] => 15
    [4] => 20
)
Array
(
    [0] => 10
    [1] => 15
    [2] => 20
)

Observa cómo array_filter() conserva las claves originales 2, 3 y 4, mientras que array_values() las reinicia a 0, 1 y 2. Esto importa cuando más adelante codificas el array en JSON (las claves enteras con huecos se convierten en un objeto JSON en lugar de un array) o cuando dependes del acceso posicional.

Conclusión

array_values() devuelve un nuevo array reindexado con todos los valores del array de entrada, descartando las claves originales. Recurre a ella siempre que necesites un array limpio en forma de lista — con mayor frecuencia tras operaciones de filtrado, eliminación u ordenación que dejan claves no secuenciales. Recuerda que nunca modifica el array original y que, para arrays muy grandes, la copia que crea tiene un coste de memoria que vale la pena tener en cuenta.

Práctica

Práctica
¿Para qué sirve la función array_values() en PHP?
¿Para qué sirve la función array_values() en PHP?
Was this page helpful?