Comprendre les fonctions de tableau PHP : Guide complet
Les tableaux en PHP sont une structure de données fondamentale. Découvrez les trois types de tableaux, comment les créer, les parcourir et utiliser les fonctions intégrées les plus utiles.
Un tableau en PHP est une variable unique qui contient une collection de valeurs. Au lieu de déclarer $user1, $user2, $user3, vous les stockez tous dans un seul tableau et y accédez par un index (un nombre) ou une clé (un nom). Les tableaux sont l'un des blocs de construction les plus utilisés en PHP — les données de requête ($_POST, $_GET), les lignes de base de données et la configuration vous sont tous transmis sous forme de tableaux.
Ce chapitre explique les trois types de tableau PHP, comment les créer et les lire, comment les parcourir, ainsi que les fonctions intégrées auxquelles vous ferez le plus souvent appel.
Les trois types de tableau
PHP dispose d'un seul type de tableau en interne, mais vous le verrez utilisé de trois façons distinctes :
| Type | Clés | Utilisation typique |
|---|---|---|
| Indexé | Entiers automatiques 0, 1, 2… | Une liste ordonnée d'éléments |
| Associatif | Chaînes que vous choisissez | Un enregistrement avec des champs nommés |
| Multidimensionnel | Tableaux imbriqués dans des tableaux | Tables, données groupées |
Créer des tableaux
La syntaxe courte moderne utilise des crochets [] ; l'ancienne forme array() est équivalente et fonctionne toujours.
<?php
// Indexed array — keys 0, 1, 2 are assigned automatically
$fruits = ["apple", "banana", "cherry"];
// Associative array — you choose the keys
$user = [
"name" => "Ada",
"email" => "[email protected]",
"admin" => true,
];
echo $fruits[0]; // apple
echo $user["name"]; // AdaAjoutez à un tableau avec la syntaxe à crochets vides, qui ajoute à la fin :
<?php
$fruits = ["apple", "banana"];
$fruits[] = "cherry"; // index 2
$fruits[] = "date"; // index 3
print_r($fruits);
// Array ( [0] => apple [1] => banana [2] => cherry [3] => date )Consultez
indexed arrays,associative arraysetmultidimensional arrayspour une couverture plus approfondie de chaque type.
Parcourir un tableau
La boucle foreach est la façon idiomatique de parcourir un tableau, car elle vous donne directement la clé et la valeur sans gestion manuelle des index :
<?php
$user = ["name" => "Ada", "email" => "[email protected]"];
foreach ($user as $key => $value) {
echo "$key: $value\n";
}
// name: Ada
// email: [email protected]Consultez le chapitre foreach loop pour la syntaxe complète, y compris le parcours par référence.
Fonctionnement des fonctions de tableau
PHP fournit des centaines de fonctions de tableau — des assistants prédéfinis qui effectuent une opération spécifique pour que vous n'ayez pas à écrire la boucle vous-même. Un point essentiel à comprendre : la plupart d'entre elles retournent un nouveau tableau et laissent l'original intact (array_map, array_filter, array_merge…), tandis qu'un groupe plus restreint modifie le tableau en place et retourne autre chose (sort retourne true, array_push retourne la nouvelle longueur). Savoir lequel est lequel évite une classe courante de bogues.
Vous appelez une fonction en passant le tableau comme argument. Par exemple, array_sum additionne toutes les valeurs :
Les fonctions les plus utilisées
| Fonction | Ce qu'elle fait | Modifie ? |
|---|---|---|
count() | Nombre d'éléments | non |
in_array() | Une valeur est-elle présente ? | non |
array_keys() | Toutes les clés sous forme de tableau | non |
array_values() | Toutes les valeurs, réindexées à partir de 0 | non |
array_merge() | Fusionner deux tableaux ou plus | non |
array_slice() | Extraire une portion | non |
array_unique() | Supprimer les valeurs dupliquées | non |
array_push() | Ajouter une ou plusieurs valeurs | oui |
sort() | Trier les valeurs par ordre croissant | oui |
Voici les trois fonctions de rappel essentielles — map, filter et reduce — qui couvrent la plupart des tâches de transformation de données.
array_map — transformer chaque élément
array_map exécute un rappel sur chaque valeur et retourne un nouveau tableau des résultats, de même longueur que l'original :
<?php
$numbers = [1, 2, 3, 4];
$squared = array_map(fn($n) => $n * $n, $numbers);
print_r($squared);
// Array ( [0] => 1 [1] => 4 [2] => 9 [3] => 16 )array_filter — garder uniquement ce qui correspond
array_filter conserve les éléments pour lesquels le rappel retourne true. Notez qu'elle préserve les clés d'origine, donc vous la faites souvent suivre de array_values() pour réindexer :
<?php
$numbers = [1, 2, 3, 4, 5, 6];
$even = array_filter($numbers, fn($n) => $n % 2 === 0);
print_r($even);
// Array ( [1] => 2 [3] => 4 [5] => 6 ) ← keys kept
print_r(array_values($even));
// Array ( [0] => 2 [1] => 4 [2] => 6 ) ← re-indexedarray_reduce — réduire à une valeur unique
array_reduce applique un rappel qui transporte un accumulateur ($carry) à travers tout le tableau, le réduisant à un seul résultat — une somme, une chaîne, un maximum, n'importe quoi :
Consultez array_map, array_filter et array_reduce pour tous les détails, et PHP callback functions pour comprendre le fonctionnement des rappels.
Pièges courants
array_filterpréserve les clés. Comme indiqué ci-dessus, le résultat n'est plus0, 1, 2…. Encapsulez-le dansarray_values()lorsque vous avez besoin d'une liste propre.array_mergerenumérote les clés entières mais écrase les clés string.array_merge(["a" => 1], ["a" => 2])donne["a" => 2], tandis que deux tableaux indexés sont concaténés, pas écrasés.- Modification vs. retour.
sort($arr)modifie$arret retournetrue— écrire$arr = sort($arr)est un bogue classique qui affectetrueà$arr. - Accéder à une clé manquante émet un avertissement et retourne
null. Protégez-vous avecisset()ouarray_key_exists()en premier.
Conclusion
Les tableaux PHP se déclinent en trois formes — indexés, associatifs et multidimensionnels — et une grande bibliothèque de fonctions existe pour les interroger, les transformer et les combiner. Utilisez foreach pour itérer, array_map / array_filter / array_reduce pour remodeler les données, et gardez à l'esprit la distinction modification/retour pour éviter les surprises. À partir de là, explorez sorting arrays et PHP functions pour compléter votre boîte à outils.