Comprendre les tableaux PHP
Les tableaux PHP sont des structures de données pour stocker des collections de variables, essentielles à la programmation PHP.
Un tableau PHP est une carte ordonnée : une seule variable qui contient de nombreuses valeurs, chacune accessible par une clé. Plutôt que de déclarer $fruit1, $fruit2, $fruit3, vous conservez un seul tableau $fruits et accédez à ses éléments par position ou par nom. Les tableaux sont la structure de données fondamentale en PHP — les résultats de requêtes, les données de formulaire ($_POST), la configuration et le JSON arrivent tous sous forme de tableaux.
Ce chapitre couvre les trois types de tableaux, comment les créer et les lire, comment ajouter, supprimer et fusionner des éléments, comment les parcourir en boucle, et les pièges courants qui font trébucher les développeurs. Chaque exemple exécutable affiche son résultat afin que vous puissiez voir exactement ce que PHP produit.
Types de tableaux PHP
PHP possède trois formes de tableaux, et en coulisses il s'agit tous du même type — une carte ordonnée de paires clé/valeur :
- Les tableaux indexés utilisent des clés entières automatiques commençant à
0. - Les tableaux associatifs utilisent des clés de type string que vous choisissez vous-même.
- Les tableaux multidimensionnels stockent d'autres tableaux comme valeurs, vous permettant de construire des tables et des structures imbriquées.
// Indexed: keys 0, 1, 2 are assigned automatically
$fruits = ["apple", "banana", "cherry"];
// Associative: you pick the keys
$colors = ["apple" => "red", "banana" => "yellow", "cherry" => "dark red"];
// Multidimensional: values are themselves arrays
$basket = [
["name" => "apple", "qty" => 4],
["name" => "banana", "qty" => 6],
];Chaque forme possède son propre chapitre dédié : tableaux indexés, tableaux associatifs, et tableaux multidimensionnels.
Créer des tableaux PHP
Il existe deux syntaxes équivalentes. La syntaxe courte [] (PHP 5.4+) est préférée dans le code moderne ; l'ancienne fonction array() fait exactement la même chose.
// Short array syntax — recommended
$fruits = ["apple", "banana", "cherry"];
// Long syntax with the array() language construct
$fruits = array("apple", "banana", "cherry");Vous pouvez également construire un tableau de façon incrémentale. Assigner à $arr[] ajoute un élément avec la prochaine clé entière, et assigner à une clé nommée crée ou écrase cette entrée :
$fruits = [];
$fruits[] = "apple"; // key 0
$fruits[] = "banana"; // key 1
$fruits["best"] = "fig"; // string key "best"Accéder aux éléments d'un tableau
Lisez une valeur avec [], en passant un index entier pour les tableaux indexés ou une clé de type string pour les tableaux associatifs.
<?php
$fruits = ["apple", "banana", "cherry"];
$colors = ["apple" => "red", "banana" => "yellow"];
echo $fruits[0]; // apple
echo "\n";
echo $colors["apple"]; // red
?>Lire une clé qui n'existe pas émet un avertissement et retourne null. Vérifiez d'abord avec isset() (vrai uniquement si la clé existe et n'est pas null) ou array_key_exists() (vrai même lorsque la valeur stockée est null), ou fournissez une valeur de repli avec l'opérateur de fusion null :
<?php
$colors = ["apple" => "red"];
$banana = $colors["banana"] ?? "unknown"; // no warning, returns "unknown"
echo $banana;
?>Ajouter et supprimer des éléments
PHP propose des fonctions dédiées pour modifier un tableau depuis l'une ou l'autre extrémité :
array_push($arr, $value)— ajoute à la fin (ou utilisez simplement$arr[] = $value).array_pop($arr)— supprime et retourne le dernier élément.array_unshift($arr, $value)— ajoute au début.array_shift($arr)— supprime et retourne le premier élément, en réindexant les autres.unset($arr[$key])— supprime un élément spécifique (cela laisse un trou dans les clés entières).
<?php
$fruits = ["apple", "banana", "cherry"];
array_push($fruits, "mango"); // ["apple","banana","cherry","mango"]
$last = array_pop($fruits); // $last = "mango"
unset($fruits[1]); // removes "banana", keys 0 and 2 remain
print_r($fruits);
?>Résultat :
Array
(
[0] => apple
[2] => cherry
)Notez le [1] manquant — unset() ne renumérotc pas. Pour compacter les clés à 0, 1, 2…, exécutez array_values($fruits). Pour plus de détails, voir array_push et array_pop.
Parcourir des tableaux en boucle
foreach est la façon idiomatique de parcourir un tableau ; il fonctionne pour les tableaux indexés et associatifs et vous donne à la fois la clé et la valeur.
<?php
$colors = ["apple" => "red", "banana" => "yellow", "cherry" => "dark red"];
foreach ($colors as $fruit => $color) {
echo "$fruit is $color\n";
}
?>Résultat :
apple is red
banana is yellow
cherry is dark redConsultez le chapitre sur la boucle foreach, et l'aperçu général des boucles PHP, pour plus de modèles.
Fusionner des tableaux
array_merge() combine deux tableaux ou plus en un nouveau. Soyez conscient de la façon dont les clés sont traitées : les clés entières sont renumérotées, mais les clés de type string entrent en collision — la valeur d'un tableau ultérieur écrase celle d'un tableau antérieur ayant la même clé string.
Résultat :
Array
(
[0] => apple
[1] => banana
[2] => cherry
[3] => mango
)Si vous avez seulement besoin d'ajouter des tableaux numérotés, l'opérateur de décomposition est une alternative concise : $all = [...$fruits1, ...$fruits2];. Pour les fusions avec clés de type string où la première valeur doit l'emporter, utilisez l'opérateur d'union + à la place. Plus de détails dans le chapitre array_merge.
Fonctions utilitaires pour les tableaux
La bibliothèque standard PHP dispose de dizaines de fonctions pour les tableaux. En voici quelques-unes que vous utiliserez constamment :
| Fonction | Ce qu'elle fait |
|---|---|
count($arr) | Nombre d'éléments |
in_array($v, $arr) | Vérifie si une valeur existe (détails) |
array_keys($arr) | Toutes les clés sous forme de nouveau tableau (détails) |
array_values($arr) | Toutes les valeurs, réindexées à partir de 0 |
sort($arr) | Trie les valeurs en place (trier les tableaux) |
<?php
$fruits = ["apple", "banana", "cherry"];
echo count($fruits); // 3
echo "\n";
echo in_array("banana", $fruits) ? "yes" : "no"; // yes
?>Pièges courants
- Les clés sont uniques. Assigner à une clé existante l'écrase plutôt que d'ajouter une seconde entrée.
"1"et1entrent en collision. Les clés de type string numériques sont converties en entiers, donc$a["1"]et$a[1]désignent le même emplacement.- Les tableaux sont copiés par valeur. Passer un tableau à une fonction donne à cette fonction une copie ; l'original reste inchangé, sauf si vous le passez par référence (
&$arr). unset()laisse des trous. Utilisezarray_values()ensuite si vous avez besoin d'un index contigu et propre.
Conclusion
Les tableaux PHP sont la base pour stocker et organiser les données — d'une simple liste de valeurs à des enregistrements imbriqués. Maîtrisez les trois formes, les opérations de création/lecture/ajout/suppression, foreach, et quelques fonctions utilitaires, et vous pourrez gérer la grande majorité des tâches de traitement de données réelles en PHP. À partir d'ici, explorez les tableaux indexés, les tableaux associatifs, et le tri des tableaux.