W3docs

Comprendre les tableaux associatifs PHP

Apprenez les tableaux associatifs PHP : création, lecture, mise à jour, boucle foreach, tri par clé ou valeur, et erreurs courantes à éviter.

Un tableau associatif en PHP stocke des valeurs sous des clés nommées plutôt que sous des positions numériques. Là où un tableau indexé répond à la question « qu'y a-t-il à la position 2 ? », un tableau associatif répond à « quelle est la valeur pour email ? » — c'est exactement ainsi que l'on modélise des enregistrements, des configurations et des tables de correspondance dans du code réel.

Ce chapitre explique comment créer des tableaux associatifs, lire et mettre à jour leurs valeurs, les parcourir, les trier par clé ou par valeur, et éviter les erreurs courantes qui piègent les débutants.

Qu'est-ce qu'un tableau associatif ?

Un tableau associatif est un tableau dont les éléments sont accessibles par une clé string (appelée aussi index) plutôt que par une position entière. Chaque clé doit être unique — assigner une valeur à une clé qui existe déjà écrase l'ancienne valeur.

$user = [
    "name"  => "Alice",
    "email" => "[email protected]",
    "age"   => 30,
];

En interne, PHP ne possède qu'un seul type de tableau. Un tableau « indexé » est simplement un tableau associatif dont les clés sont les entiers 0, 1, 2, …. C'est pourquoi vous pouvez librement mélanger des clés string et entières dans le même tableau.

Créer un tableau associatif

Il existe deux façons équivalentes de construire un tableau associatif. La syntaxe courte [] (PHP 5.4+) est préférée dans le code moderne ; la fonction array() produit le même résultat.

// Short array syntax (recommended)
$fruits = ["apple" => "red", "banana" => "yellow", "grapes" => "green"];

// Long syntax — identical result
$fruits = array("apple" => "red", "banana" => "yellow", "grapes" => "green");

Vous pouvez aussi ajouter des clés une par une, ce qui est pratique lors de la construction d'un tableau dans une boucle :

$prices = [];
$prices["coffee"] = 2.5;
$prices["tea"]    = 2.0;

L'ordre dans lequel vous assignez les clés est conservé — les tableaux PHP mémorisent l'ordre d'insertion, de sorte que l'itération ultérieure vous donnera coffee avant tea.

Accéder aux valeurs

Lisez une valeur avec sa clé entre crochets :

$fruits = ["apple" => "red", "banana" => "yellow"];
echo $fruits["apple"]; // red

Si la clé n'existe pas, PHP émet un avertissement et retourne null. Pour lire en toute sécurité, vérifiez d'abord avec array_key_exists(), ou utilisez l'opérateur de coalescence null ?? pour fournir une valeur par défaut :

$color = $fruits["mango"] ?? "unknown";
echo $color; // unknown — no warning

Ajouter et modifier des valeurs

Assignez avec une clé pour mettre à jour un élément existant ou en ajouter un nouveau :

$fruits = ["apple" => "red"];

$fruits["apple"]  = "green"; // modify existing key
$fruits["cherry"] = "dark red"; // add a new key

print_r($fruits);
// Array ( [apple] => green [cherry] => dark red )

Supprimez un élément avec unset() :

unset($fruits["apple"]);

Parcourir un tableau associatif

Une boucle for classique ne fonctionne pas ici car il n'y a pas d'indices numériques séquentiels. Utilisez foreach avec la forme key => value pour parcourir à la fois les clés et les valeurs :

$user = ["name" => "Alice", "email" => "[email protected]", "age" => 30];

foreach ($user as $field => $value) {
    echo "$field: $value\n";
}
// name: Alice
// email: [email protected]
// age: 30

Trier les tableaux associatifs

Comme les clés ont une signification, vous triez avec des fonctions qui préservent l'association clé/valeursort() supprimerait les clés. Utilisez :

  • ksort() / krsort() — tri par clé, croissant / décroissant
  • asort() / arsort() — tri par valeur, croissant / décroissant
$scores = ["Bob" => 75, "Alice" => 90, "Carol" => 82];

arsort($scores); // sort by value, highest first

foreach ($scores as $name => $score) {
    echo "$name: $score\n";
}
// Alice: 90
// Carol: 82
// Bob: 75

Consultez Trier les tableaux en PHP pour l'ensemble complet des fonctions de tri.

Erreurs courantes

  • Réutiliser une clé écrase silencieusement. ["a" => 1, "a" => 2] donne ["a" => 2] — aucune erreur, la première valeur est perdue.
  • Les clés string numériques deviennent des entiers. ["10" => "x"] est stocké sous la clé entière 10. $arr["10"] et $arr[10] accèdent au même élément.
  • Les clés true/false/null sont converties. Une clé true devient 1, false et null deviennent respectivement 0 et "". Utilisez de préférence de simples string et des entiers comme clés.
  • Ne comptez pas sur for ($i = 0; …). Utilisez foreach, array_keys(), ou array_values() pour itérer quand les clés ne sont pas 0..n.

Conclusion

Les tableaux associatifs vous permettent de stocker des données sous des clés string significatives et uniques — idéal pour les enregistrements, les paramètres et les tables de correspondance. Lisez avec $arr["key"] (protégez les clés manquantes avec ??), mettez à jour ou ajoutez par assignation, supprimez avec unset(), itérez avec foreach, et triez avec les fonctions préservant l'association clé/valeur comme ksort() et asort().

Pour aller plus loin, explorez les tableaux indexés, les tableaux multidimensionnels (tableaux de tableaux associatifs), et array_keys() pour extraire toutes les clés en une seule fois.

Pratique

Pratique
Qu'est-ce qui est vrai concernant les tableaux associatifs en PHP ?
Qu'est-ce qui est vrai concernant les tableaux associatifs en PHP ?
Was this page helpful?