Menu

Tableaux PHP : créer, lire, parcourir et afficher

Un tableau PHP est une liste ordonnée de valeurs, chacune rangée sous une clé : $fruits = ['apple', 'banana']; se lit avec $fruits[0]. Comment créer des tableaux, lire et modifier des éléments, les parcourir, les afficher, et quelle fonction de tableau choisir.

Cette page contient des éditeurs exécutables - modifiez, exécutez et voyez la sortie instantanément.

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âcheFonction
Ajouter à la finarray_push() ou $arr[] =
Nombre d'élémentscount()
Vérifier si une valeur existein_array()
Trouver la clé d'une valeurarray_search()
Vérifier si une clé existearray_key_exists()
Combiner des tableauxarray_merge()
Transformer chaque valeurarray_map()
Garder certaines valeursarray_filter()
Triersort(), usort() et compagnie
Supprimer un élémentunset(), array_splice()
Extraire une partiearray_slice()
Supprimer les doublonsarray_unique()
De chaîne à tableau et retourexplode(), 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.

Illustration des langages de programmation de Coddy

Apprendre à coder avec Coddy

COMMENCER