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:
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 dearray_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, comoarray_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
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()
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.