Les tableaux
Notions théoriques
En PHP, un tableau est un type de données qui peut contenir plusieurs valeurs à la fois.
Il y a 2 types de tableaux en PHP, les tableaux indexés et les tableaux associatifs :
-
Dans un tableau indexé, les valeurs sont stockées dans des cases numérotées à partir de 0.
-
Dans un tableau associatif, chaque valeur est associée à une clé unique (un peu comme une étiquette).
Pour créer un tableau, on peut utiliser la fonction array() ou la syntaxe des crochets [].
Par exemple,
$fruits = array("pomme", "banane", "cerise")ou$fruits = ["pomme", "banane", "cerise"]crée un tableau indexé avec trois valeurs.
Pour accéder à une valeur, on utilise son index ou sa clé entre crochets.
Par exemple,
$fruits[1]donne "banane".
Synonymes de tableau utilisés en PHP
- Array (tableau indexé ou associatif)
- Collection (tableau indexé ou associatif)
- Liste (tableau indexé)
- Vecteur (tableau indexé)
- Dictionnaire (tableau associatif)
- Map (tableau associatif)
PHP n'a pas de type
Listecomme dans certains autres langages, on utiliseArrayà la place.
Afficher le contenu d'un tableau
Pour afficher le contenu d'un tableau, on peut utiliser la fonction PHP print_r().
-
Voici un exemple de tableau :
$fruits = array("pomme", "banane", "cerise");ou
$fruits = ["pomme", "banane", "cerise"]; -
pour afficher le contenu du tableau :
print_r($fruits); // Affiche ["pomme", "banane", "cerise"]
Ajouter un élément dans un tableau
Pour ajouter un élément dans un tableau, il suffit de saisir le nom du tableau suivi de [].
-
Voici un exemple de tableau :
$fruits = array("pomme", "banane", "cerise");ou
$fruits = ["pomme", "banane", "cerise"]; -
pour afficher le contenu du tableau :
print_r($fruits); // Affiche ["pomme", "banane", "cerise"] -
pour ajouter un élément "poire" à la fin du tableau :
$fruits[] = "poire"; -
et enfin, pour afficher le nouveau contenu du tableau :
print_r($fruits); // Affiche ["pomme", "banane", "cerise", "poire"]
Compter le nombre d'éléments
Pour compter le nombre d'éléments d'un tableau, on utilise la fonction PHP count().
Par exemple :
$fruits = array("pomme", "banane", "cerise");
$nombre = count($fruits);
print($nombre); // Affiche 3
Parcourir un tableau
Le parcours d'un tableau avec foreach en PHP est une méthode simple et efficace pour accéder à tous les éléments d'un tableau.
Voici un exemple :
-
Création du tableau :
$fruits = ["pomme", "banane", "cerise", "fraise", "kiwi"]; -
Parcours du tableau avec foreach :
foreach ($fruits as $fruit) {echo $fruit . "<br>";} -
Résultat affiché :
pommebananecerisefraisekiwi -
Parcours avec index : Si vous avez besoin de l'index de chaque élément, vous pouvez utiliser cette syntaxe :
foreach ($fruits as $index => $fruit) {echo $index . ": " . $fruit . "<br>";} -
Résultat avec index :
0: pomme1: banane2: cerise3: fraise4: kiwi -
Modification des éléments : Pour modifier les éléments pendant le parcours, utilisez une référence (&) :
foreach ($fruits as &$fruit) {$fruit = strtoupper($fruit);}print_r($fruits); -
Résultat après modification :
Array([0] => POMME[1] => BANANE[2] => CERISE[3] => FRAISE[4] => KIWI)
Le foreach est particulièrement utile car il fonctionne avec tous les types de tableaux (indexés numériquement ou associatifs) et ne nécessite pas de connaître la taille du tableau à l'avance.
Exemple pratique
-
Création d'un tableau indexé :
$fruits = array("pomme", "banane", "cerise");ou :
$fruits = ["pomme", "banane", "cerise"]; -
Affichage du contenu du tableau, à la position 0 :
print($fruits[0]); // Affiche "pomme" -
Création d'un tableau associatif :
$personne = array("nom" => "Dupont", "prénom" => "Jean", "âge" => 30);ou :
$personne = ["nom" => "Dupont", "prénom" => "Jean", "âge" => 30]; -
Affichage du contenu du tableau, à la clé "prénom" :
print($personne["prénom"]); // Affiche "Jean"
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Dans ce TP, vous allez travailler avec des tableaux indexés et des tableaux associatifs en PHP.
- Dans votre répertoire "Documents" créez le répertoire
tp_tableaux. - Dans ce répertoire créez le fichier
main.php:<?php// Les tableaux en PHPprint("Les tableaux en PHP \n\n"); - Testez le fonctionnement de ce fichier :
php main.php
1) Un tableaux indexé
-
Créez un tableau indexé
$fichiersavec les éléments "document.txt", "image.jpg" et "video.mp4". -
Ajoutez le fichier "musique.mp3" à la fin du tableau.
-
Affichez le premier et le dernier élément du tableau.
La syntaxe $tableau[] ajoute un élément à la fin du tableau sans avoir à connaître sa taille. C'est plus lisible et moins sujet aux erreurs que $tableau[count($tableau)] = .... Pour insérer à une position précise, utiliser array_splice().
2) Un tableau associatif
Dans un tableau associatif en PHP, chaque valeur est associée à une clé unique, un peu comme une étiquette.
Contrairement aux tableaux indexés où les valeurs sont stockées dans des cases numérotées, dans un tableau associatif, chaque valeur est accessible via une clé spécifique.
- Créez un tableau associatif
$scoresavec les clés "Alice", "Bob" et "Charlie" ayant pour valeurs respectives 85, 90 et 88.

-
Ajoutez un nouvel élément au tableau associatif : "David" avec un score de 95.
-
Affichez le score de "Bob".
array_key_exists() est plus sûr que isset() pour vérifier l'existence d'une clé dans un tableau associatif : isset() retourne false si la clé existe mais vaut null, tandis que array_key_exists() retourne true dans ce cas.
3) Un tableau multidimensionnel
-
Créez un tableau associatif
$utilisateursavec une clé "Jean" et une valeur qui est un 2ème tableau associatif.Contenu du 2ème tableau associatif :
- une clé "document.txt" et une valeur "rwx"
- une clé "classeur.xls" et une valeur "r--"

-
Ajoutez les droits "rw-" pour le fichier "image.jpg" pour l'utilisateur "Jean".
-
Affichez les droits de "Jean" sur "document.txt", "classeur.xls" et "image.jpg".
Pour accéder à un élément dans un tableau multidimensionnel, enchaîner les crochets : $tableau["cle1"]["cle2"]. Vérifier l'existence des clés intermédiaires avec isset() avant d'y accéder pour éviter les erreurs "Undefined index".
4) Utilisation de foreach
-
En utilisant le tableau associatif
$utilisateurscréé dans l'exercice précédent, parcourez chaque utilisateur et leurs droits sur les fichiers avec une boucleforeach. -
Pour chaque utilisateur, affichez son nom et la liste des fichiers auxquels il a accès, ainsi que les droits correspondants.
Voici ce qui va s'afficher :
Utilisateur : Jean
Fichier : document.txt, Droits : rwx
Fichier : classeur.xls, Droits : r--
Fichier : image.jpg, Droits : rw-
Préférer foreach à for pour parcourir un tableau quand l'index numérique n'est pas nécessaire : la syntaxe est plus lisible et fonctionne aussi bien avec les tableaux indexés qu'associatifs. Réserver for aux itérations où la position dans le tableau est importante.
Une solution
Vous devez être connecté pour voir le contenu.