W3docs

Fonction PHP array_combine

Découvrez array_combine() en PHP : syntaxe, paramètres, valeur de retour et exemples pratiques pour combiner deux arrays en un array associatif.

La fonction array_combine() en PHP fusionne deux arrays plats en un seul array associatif : elle prend les valeurs du premier array comme clés et les valeurs du second array comme valeurs. C'est l'outil idéal lorsque vous disposez de deux arrays parallèles — par exemple, une liste de noms de colonnes et une liste de valeurs de cellules alignées position par position — et que vous souhaitez les assembler en une seule correspondance clé/valeur.

Cette page couvre la syntaxe, la signification de chaque paramètre et de la valeur de retour, les règles à respecter (longueur égale, types de clés valides) et les patterns les plus courants en situation réelle.

Syntaxe

array_combine(array $keys, array $values): array
ParamètreDescription
$keysArray dont les valeurs deviennent les clés du résultat. Ses valeurs doivent être des clés d'array valides (entiers ou chaînes de caractères).
$valuesArray dont les valeurs deviennent les valeurs du résultat.

Valeur de retour : un nouvel array associatif construit en associant chaque élément de $keys avec l'élément de $values situé à la même position.

Depuis PHP 8.0, passer des arrays de tailles différentes lève une ValueError. En PHP 7.x et antérieur, la fonction retournait false et émettait un avertissement.

Utilisation de base

Le cas d'usage classique consiste à transformer deux arrays parallèles en une correspondance — ici, des noms de produits associés à leurs prix.

php— editable, runs on the server

Cela produira la sortie suivante :

Array
(
    [Product 1] => 10
    [Product 2] => 20
    [Product 3] => 30
)

La combinaison se fait par position, et non par tri ou correspondance — la première clé est associée à la première valeur, la deuxième à la deuxième, et ainsi de suite.

Construire une ligne à partir d'en-têtes et de données

Un cas pratique fréquent consiste à reconstruire un enregistrement associatif à partir d'une ligne d'en-têtes au format CSV et d'une ligne de données. C'est exactement ainsi que vous pouvez mapper une ligne d'un fichier CSV analysé.

<?php

$headers = array("id", "name", "email");
$row     = array(101, "Ann", "[email protected]");

$record = array_combine($headers, $row);

echo $record["name"] . " <" . $record["email"] . ">";

Cela produit :

Ann <[email protected]>

Règles et pièges à éviter

Gardez ces contraintes à l'esprit :

  • La longueur égale est obligatoire. $keys et $values doivent avoir le même nombre d'éléments. Sur PHP 8+, une différence lève une ValueError ; protégez-vous avec count($keys) === count($values) si les longueurs ne sont pas connues à l'avance.
  • Les clés doivent être valides. Les valeurs utilisées comme clés doivent être des entiers ou des chaînes de caractères. Les flottants sont tronqués en entiers, les boolean sont convertis en 0/1, et null devient la chaîne vide "".
  • Les clés en double écrasent les précédentes. Si l'array $keys contient des valeurs répétées, les paires suivantes écrasent les précédentes, de sorte que le résultat peut être plus court que l'entrée. Pour obtenir d'abord le nombre de clés uniques, consultez array_unique().
  • Seules les valeurs sont utilisées. Les clés originales des deux arrays d'entrée sont ignorées — seules leurs valeurs comptent.

L'exemple ci-dessous montre une clé en double qui fusionne deux entrées en une seule :

<?php

$keys   = array("a", "b", "a");
$values = array(1, 2, 3);

print_r(array_combine($keys, $values));

Le dernier "a" => 3 écrase le premier, donc la sortie est :

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

Fonctions associées

  • array_merge() — joint des arrays en ajoutant des valeurs plutôt qu'en associant des clés à des valeurs.
  • array_flip() — échange les clés et les valeurs d'un seul array.
  • array_keys() et array_values() — l'opération inverse : extraire les clés ou les valeurs d'un array associatif.

Conclusion

array_combine() est le moyen le plus simple d'assembler deux arrays parallèles en un array associatif, en les associant élément par élément. Retenez les deux règles qui posent le plus souvent problème : les arrays doivent avoir la même longueur (sinon une ValueError sur PHP 8+), et les clés en double s'écrasent silencieusement les unes les autres.

Pratique

Pratique
Quelle est la fonction principale de array_combine() en PHP ?
Quelle est la fonction principale de array_combine() en PHP ?
Was this page helpful?