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
Liste
comme 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é :
pomme
banane
cerise
fraise
kiwi -
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: pomme
1: banane
2: cerise
3: fraise
4: 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 PHP
print("Les tableaux en PHP \n\n"); - Testez le fonctionnement de ce fichier :
php main.php
1) Un tableaux indexé
-
Créez un tableau indexé
$fichiers
avec 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.
Une solution pour l'exercice 1
Vous devez être connecté pour voir le contenu.
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
$scores
avec 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".
Une solution pour l'exercice 2
Vous devez être connecté pour voir le contenu.
3) Un tableau multidimensionnel
-
Créez un tableau associatif
$utilisateurs
avec 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".
Une solution pour l'exercice 3
Vous devez être connecté pour voir le contenu.
4) Utilisation de foreach
-
En utilisant le tableau associatif
$utilisateurs
créé 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-
Une solution pour l'exercice 4
Vous devez être connecté pour voir le contenu.