W3docs

Comprendre la fonction PHP array_flip

La fonction PHP array_flip échange les clés et les valeurs d'un array. Découvrez la syntaxe, les cas d'usage et les fonctions associées.

La fonction PHP array_flip échange les clés et les valeurs d'un array : chaque clé devient une valeur, et chaque valeur devient une clé. Elle retourne un nouvel array et ne modifie jamais celui que vous lui passez. Cette page couvre la syntaxe, un exemple exécutable, la gestion des doublons et des types de clés, les cas d'usage courants et les fonctions associées à connaître.

Syntaxe

array_flip(array $array): array
  • $array — l'array d'entrée. Ses valeurs doivent être des clés valides, c'est-à-dire qu'elles ne peuvent être que des entiers ou des string. Tout autre type de valeur (boolean, float, array, object, null) déclenche un avertissement et est ignoré dans le résultat.
  • Valeur de retour — un nouvel array avec les paires clé/valeur inversées.

Comment utiliser la fonction PHP array_flip

Passez votre array à la fonction et elle retourne l'array inversé :

Exemple PHP d'utilisation de la fonction array_flip

php— editable, runs on the server

Dans cet exemple, $flipped_array contiendra les éléments suivants :

Array
(
    [1] => a
    [2] => b
    [3] => c
)

Les clés string "a", "b", "c" sont désormais les valeurs, et les entiers 1, 2, 3 sont désormais les clés.

Avantages de l'utilisation de la fonction PHP array_flip

L'utilisation de array_flip dans votre code PHP présente plusieurs avantages :

  • Simplification du code : array_flip peut simplifier votre code en éliminant la nécessité d'échanger manuellement les clés et les valeurs d'un array.
  • Amélioration de la lisibilité : les arrays inversés sont souvent plus faciles à lire et à comprendre, notamment lorsque vous travaillez avec de grands arrays ou des arrays contenant des structures de données complexes.
  • Exécution optimisée : array_flip est une fonction native optimisée pour cette tâche, généralement plus performante que les boucles manuelles d'échange clé-valeur.

Construire une table de recherche rapide

L'utilisation la plus idiomatique de array_flip consiste à transformer une liste de valeurs en un ensemble que vous pouvez interroger avec isset(). Les clés étant hachées, une vérification isset() sur un array inversé est O(1) — bien plus rapide que de parcourir la liste avec in_array() sur un grand jeu de données.

<?php

$allowed = ["admin", "editor", "viewer"];
$lookup  = array_flip($allowed);

var_dump(isset($lookup["editor"])); // present
var_dump(isset($lookup["guest"]));  // missing

?>

Résultat :

bool(true)
bool(false)

Gestion des valeurs dupliquées

Lorsque deux clés de l'array original partagent la même valeur, le résultat inversé ne peut contenir qu'une seule entrée pour cette valeur — c'est donc la dernière clé qui l'emporte et la précédente est supprimée :

<?php

$colors = ["red", "green", "blue", "green"];
print_r(array_flip($colors));

?>

Résultat :

Array
(
    [red] => 0
    [green] => 3
    [blue] => 2
)

L'index 1 (le premier "green") est perdu car l'index 3 l'a écrasé. Si vous avez besoin de compter combien de fois chaque valeur apparaît, utilisez array_count_values() ; pour supprimer les doublons tout en conservant l'ordre, utilisez array_unique().

Cas d'usage courants

  • Construction d'ensembles de recherche à partir d'une liste d'identifiants uniques ou de valeurs autorisées pour des vérifications isset() rapides.
  • Inversion d'un dictionnaire ou d'un mapping (par ex. name => id en id => name).
  • Réorganisation des éléments d'un array en tant que clés tout en mémorisant leur position d'origine.

Limitations et pièges

  • Valeurs dupliquées : seule la dernière clé pour une valeur répétée survit ; les clés précédentes sont perdues (voir ci-dessus).
  • Types de valeurs invalides : les valeurs qui ne sont pas de type int ou string ne peuvent pas devenir des clés. Elles émettent Warning: Can only flip string and integer values et sont ignorées, tandis que les paires valides sont tout de même inversées.
  • Clés string numériques : lorsqu'une valeur devient une clé, PHP applique les règles normales des clés d'array — une string numérique comme "42" devient l'entier 42.

Fonctions associées

  • array_reverse() — inverse l'ordre des éléments (souvent confondu avec l'inversion des clés/valeurs).
  • array_keys() et array_values() — extraient uniquement les clés ou uniquement les valeurs.
  • array_search() — trouve la clé correspondant à une seule valeur sans inverser tout l'array.
  • array_combine() — construit un array en associant un array de clés à un array de valeurs.

Pour approfondir les arrays en général, consultez PHP Arrays et Associative Arrays.

Conclusion

array_flip échange les clés et les valeurs d'un array en un seul appel optimisé. Elle est particulièrement utile lorsque vous avez besoin d'un ensemble de recherche isset() rapide ou que vous souhaitez inverser un mapping — gardez simplement à l'esprit que les valeurs doivent être des entiers ou des string, et que les valeurs dupliquées se réduisent à leur dernière clé.

Pratique

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