W3docs

Fonction PHP array_values() : Guide complet

Guide complet sur la fonction array_values() en PHP : syntaxe, cas d'usage, comparaison avec d'autres fonctions et exemples pratiques.

La fonction array_values() retourne toutes les valeurs d'un array, ré-indexées avec des clés entières consécutives à partir de 0. C'est l'une des fonctions d'aide aux arrays les plus simples et les plus utilisées en PHP : dès qu'un array présente des lacunes dans ses clés, ou des clés string dont vous n'avez plus besoin, array_values() vous restitue un array propre sous forme de liste. Cette page couvre sa syntaxe, les cas où y recourir, sa comparaison avec des fonctions similaires, ainsi que des exemples exécutables.

Qu'est-ce que la fonction array_values() ?

array_values() est une fonction PHP intégrée qui prend un array en entrée et retourne un nouvel array contenant toutes ses valeurs. L'array d'origine reste inchangé. L'array retourné utilise toujours des clés entières séquentielles (0, 1, 2, …), et les clés d'origine — qu'elles soient des string ou des entiers non séquentiels — sont abandonnées. L'ordre relatif des valeurs est préservé.

Syntaxe et valeur de retour

array_values(array $array): array
  • $array — l'array d'entrée dont vous souhaitez extraire les valeurs.
  • Retourne un array indexé contenant toutes les valeurs, ré-numérotées à partir de 0.

Comment fonctionne array_values() ?

La syntaxe est simple. Voici un exemple de base :

php— editable, runs on the server

Le résultat de ce code serait :

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

Comme vous pouvez le constater, la fonction array_values() prend l'array d'entrée $input et retourne un nouvel array $output contenant toutes les valeurs de $input, avec de nouvelles clés numériques démarrant à zéro. Les clés d'origine de l'array d'entrée sont supprimées.

Pourquoi utiliser array_values() ?

La fonction array_values() peut s'avérer utile dans de nombreuses situations. Par exemple, si vous disposez d'un array associatif avec des clés non séquentielles, vous pouvez utiliser array_values() pour créer un nouvel array avec des clés numériques séquentielles. Cela peut être utile si vous devez effectuer des opérations sur les valeurs de l'array d'origine qui nécessitent des clés séquentielles, comme le tri ou la recherche.

Un autre cas d'usage pour array_values() est lorsque vous devez supprimer les clés d'un array tout en préservant l'ordre des valeurs. En appliquant simplement array_values() sur l'array d'origine, le nouvel array aura le même ordre que l'array d'origine, mais avec des clés numériques démarrant à zéro.

Comparaison entre array_values() et d'autres fonctions PHP

En plus de array_values(), il existe d'autres fonctions PHP qui effectuent des tâches similaires. Voici une brève comparaison :

  • array_keys() : Retourne un array de toutes les clés de l'array d'entrée — l'image miroir de array_values().
  • array_flip() : Échange toutes les clés avec leurs valeurs associées.
  • array_combine() : Crée un nouvel array en utilisant un array pour les clés et un autre pour les valeurs.
  • array_column() : Retourne les valeurs d'une seule colonne d'un array multidimensionnel.

Bien que ces fonctions soient utiles à leur façon, elles ont des cas d'usage différents. array_keys() et array_flip() opèrent sur les clés d'un array, tandis que array_combine() combine deux arrays en un seul. Pour en savoir plus sur les arrays en général, consultez le chapitre PHP Arrays.

Bonnes pratiques pour l'utilisation de array_values()

Voici quelques conseils et bonnes pratiques pour utiliser array_values() efficacement :

  • Gardez à l'esprit que array_values() abandonne les clés d'origine de l'array d'entrée. Si vous devez conserver les clés, utilisez une autre fonction, comme array_keys().
  • Si vous disposez d'un array avec des clés non séquentielles, utilisez array_values() pour créer un nouvel array avec des clés séquentielles avant d'effectuer des opérations qui les requièrent.
  • Utilisez array_values() pour supprimer les clés d'un array tout en préservant l'ordre des valeurs.
  • Lorsque vous travaillez avec de grands arrays, sachez que la création d'un nouvel array avec array_values() peut consommer une quantité significative de mémoire. Dans ces cas, envisagez d'utiliser des méthodes alternatives qui ne nécessitent pas la création d'un nouvel array.
  • Utilisez de bonnes conventions de nommage pour vos variables afin de rendre votre code plus lisible et compréhensible.

Exemples pratiques d'utilisation de array_values()

Examinons maintenant quelques exemples pratiques d'utilisation de array_values() dans du code PHP.

Exemple 1 : Suppression des clés non numériques d'un array

Supposons que vous disposiez d'un array associatif avec des clés non numériques et que vous souhaitiez supprimer ces clés et créer un nouvel array avec des clés numériques séquentielles. Voici comment procéder avec array_values() :

Utilisation de la fonction PHP array_values avec un array associatif

php— editable, runs on the server

Le résultat de ce code serait :

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

Comme vous pouvez le voir, array_values() a créé un nouvel array avec des clés numériques séquentielles, en supprimant les clés non numériques d'origine.

Exemple 2 : Ré-indexation d'un array après filtrage

C'est l'utilisation réelle la plus courante de array_values(). Des fonctions comme array_filter() conservent les clés d'origine, de sorte que la suppression d'éléments laisse des lacunes dans la numérotation. L'appel de array_values() ensuite vous donne une liste propre, sans lacunes :

PHP : ré-indexation d'un array après array_filter()

php— editable, runs on the server

Le résultat de ce code serait :

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

Notez que array_filter() conserve les clés d'origine 2, 3 et 4, tandis que array_values() les réinitialise à 0, 1 et 2. Cela a son importance lorsque vous encodez ensuite l'array en JSON (des clés entières avec des lacunes deviennent un objet JSON au lieu d'un array) ou lorsque vous vous appuyez sur l'accès positionnel.

Conclusion

array_values() retourne un nouvel array ré-indexé contenant toutes les valeurs de l'array d'entrée, en abandonnant les clés d'origine. Utilisez-la chaque fois que vous avez besoin d'un array propre sous forme de liste — le plus souvent après des opérations de filtrage, de suppression ou de tri qui laissent des clés non séquentielles. Rappelez-vous qu'elle ne modifie jamais l'array d'origine, et que pour les très grands arrays, la copie qu'elle crée a un coût en mémoire qu'il convient de garder à l'esprit.

Pratique

Pratique
Quel est le rôle de la fonction array_values() en PHP ?
Quel est le rôle de la fonction array_values() en PHP ?
Was this page helpful?