Un tableau PHP stocke une liste de valeurs sous des clés. Créez-en un avec des crochets, $fruits = ['apple', 'banana', 'cherry'];, et lisez un élément par son index, $fruits[0]. Les index commencent à 0, et count($fruits) donne le nombre d'éléments.
Chaque tableau PHP est une map ordonnée : chaque valeur est rangée sous une clé. Quand vous ne choisissez pas les clés, PHP les numérote 0, 1, 2... et vous obtenez un tableau indexé. Quand vous les choisissez vous-même (['name' => 'Ada']), vous obtenez un tableau associatif. Les deux sont le même type array.
Créer un tableau
Les crochets sont la syntaxe habituelle. array() est l'ancienne écriture et produit exactement la même chose. range() construit une liste de nombres ou de lettres, et array_fill() répète une valeur.
Un tableau PHP peut contenir à la fois des valeurs de types différents, y compris d'autres tableaux. Un tableau de tableaux est un tableau multidimensionnel, la façon habituelle de stocker des lignes de données.
Obtenir le premier et le dernier élément
PHP n'a pas d'index négatifs. $arr[-1] ne signifie pas « le dernier » : il cherche une clé nommée -1 et, quand il n'y en a pas, PHP affiche Warning: Undefined array key -1. Utilisez array_key_first() et array_key_last(), qui fonctionnent aussi quand les clés ne commencent pas à 0.
end($queue) renvoie aussi la dernière valeur, mais déplace le pointeur interne du tableau au passage, la version par clé est donc plus claire.
Afficher un tableau
echo $arr ne fonctionne pas : il affiche le mot Array et un warning. Choisissez l'affichage adapté au besoin :
print_r($arr)pour un affichage lisible pendant le débogage.var_dump($arr)pour voir aussi le type et la longueur de chaque valeur.implode(', ', $arr)pour transformer les valeurs en une seule chaîne à afficher.json_encode($arr)pour envoyer le tableau à JavaScript ou à une API.
La page print_r et var_dump couvre les options de formatage, y compris l'affichage d'un tableau dans du HTML.
Parcourir un tableau
foreach est la boucle faite pour les tableaux : elle vous donne chaque valeur, et la clé si vous la demandez. Une boucle for avec un index fonctionne aussi pour les tableaux indexés dont les clés partent de 0 sans trou.
Les tableaux sont copiés, pas partagés
Affecter un tableau à une autre variable, ou le passer à une fonction, donne une copie. Modifier la copie laisse l'original intact. Ajoutez & au paramètre quand une fonction doit modifier le tableau de l'appelant.
Les fonctions de tableau par tâche
PHP fournit plus de 70 fonctions de tableau. Voici celles que vous utiliserez le plus, chacune avec sa page :
| Tâche | Fonction |
|---|---|
| Ajouter à la fin | array_push() ou $arr[] = |
| Nombre d'éléments | count() |
| Vérifier si une valeur existe | in_array() |
| Trouver la clé d'une valeur | array_search() |
| Vérifier si une clé existe | array_key_exists() |
| Combiner des tableaux | array_merge() |
| Transformer chaque valeur | array_map() |
| Garder certaines valeurs | array_filter() |
| Trier | sort(), usort() et compagnie |
| Supprimer un élément | unset(), array_splice() |
| Extraire une partie | array_slice() |
| Supprimer les doublons | array_unique() |
| De chaîne à tableau et retour | explode(), implode() |
Des clés qui fusionnent sans prévenir
Les clés de tableau sont des entiers ou des chaînes, et PHP convertit certaines clés pour vous. Une chaîne qui ressemble à un entier décimal, comme "1", devient l'entier 1, donc $a["1"] et $a[1] désignent le même emplacement. "01" et "1.5" restent des chaînes. C'est pourquoi un tableau construit à partir d'une saisie de formulaire ou d'un CSV peut finir avec moins d'éléments que prévu.
Questions fréquentes
Comment créer un tableau en PHP ?
Utilisez des crochets : $colors = ['red', 'green', 'blue'];. Un tableau vide s'écrit $items = [];. L'ancienne syntaxe array('red', 'green') fait la même chose et fonctionne toujours.
Comment afficher un tableau en PHP ?
echo ne peut pas afficher un tableau (il affiche le mot Array et un warning). Utilisez print_r($arr) pour un affichage lisible, var_dump($arr) pour voir aussi les types, ou echo implode(', ', $arr) pour afficher les valeurs sur une ligne.
Comment obtenir le dernier élément d'un tableau en PHP ?
Utilisez $arr[array_key_last($arr)] (PHP 7.3+) ou end($arr). PHP n'a pas d'index négatifs : $arr[-1] cherche une clé nommée -1, qui en général n'existe pas.
Les tableaux PHP sont-ils passés par valeur ou par référence ?
Par valeur. $b = $a; donne à $b sa propre copie, donc modifier $b ne modifie pas $a. Pour modifier le tableau de l'appelant dans une fonction, déclarez le paramètre comme référence : function add(array &$list).
Quelle est la différence entre un tableau indexé et un tableau associatif en PHP ?
C'est le même type. Un tableau indexé a des clés entières 0, 1, 2... que PHP attribue pour vous ; un tableau associatif utilise des clés que vous choisissez, généralement des chaînes comme 'name'. Un même tableau peut même mélanger les deux.