W3docs

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 :

TypeClésUtilisation typique
IndexéEntiers automatiques 0, 1, 2…Une liste ordonnée d'éléments
AssociatifChaînes que vous choisissezUn enregistrement avec des champs nommés
MultidimensionnelTableaux imbriqués dans des tableauxTables, 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"];   // Ada

Ajoutez à 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 arrays et multidimensional arrays pour 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 :

php— editable, runs on the server

Les fonctions les plus utilisées

FonctionCe qu'elle faitModifie ?
count()Nombre d'élémentsnon
in_array()Une valeur est-elle présente ?non
array_keys()Toutes les clés sous forme de tableaunon
array_values()Toutes les valeurs, réindexées à partir de 0non
array_merge()Fusionner deux tableaux ou plusnon
array_slice()Extraire une portionnon
array_unique()Supprimer les valeurs dupliquéesnon
array_push()Ajouter une ou plusieurs valeursoui
sort()Trier les valeurs par ordre croissantoui

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-indexed

array_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 :

php— editable, runs on the server

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_filter préserve les clés. Comme indiqué ci-dessus, le résultat n'est plus 0, 1, 2…. Encapsulez-le dans array_values() lorsque vous avez besoin d'une liste propre.
  • array_merge renumé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 $arr et retourne true — écrire $arr = sort($arr) est un bogue classique qui affecte true à $arr.
  • Accéder à une clé manquante émet un avertissement et retourne null. Protégez-vous avec isset() ou array_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.

Pratique

Pratique
Quelles affirmations sont vraies concernant les tableaux en PHP ?
Quelles affirmations sont vraies concernant les tableaux en PHP ?
Was this page helpful?