Les Tableaux
Les tableaux servent à stocker plusieurs valeurs dans une seule variable.
Imagine une boîte qui peut contenir plusieurs objets :
- des noms
- des chiffres
- des villes
- des produits
Sans tableau, il faudrait créer une variable pour chaque valeur.
$fruit1 = "Pomme";
$fruit2 = "Banane";
$fruit3 = "Orange";
Avec un tableau, tout est regroupé ensemble.
1. Tableau simple
Un tableau simple contient plusieurs valeurs dans un ordre précis.
$fruits = ["Pomme", "Banane", "Orange"];
Comprendre la syntaxe
- [ ] → crée le tableau
- Chaque valeur est séparée par une virgule
- PHP donne automatiquement un index à chaque élément
Les index commencent toujours à 0.
| Index | Valeur |
|---|---|
| 0 | Pomme |
| 1 | Banane |
| 2 | Orange |
2. Accéder à une valeur
Pour récupérer une valeur précise, on utilise son index.
echo $fruits[0];
Ici :
- [0] → premier élément
- [1] → deuxième élément
- [2] → troisième élément
Résultat tableau simple
> Premier fruit : Pomme
> Deuxième fruit : Banane
> Troisième fruit : Orange
3. Ajouter une valeur
On peut ajouter un nouvel élément dans le tableau.
$fruits[] = "Fraise";
Résultat ajout
> Fruit : Pomme
> Fruit : Banane
> Fruit : Orange
> Fruit : Fraise
4. Afficher un tableau complet
La fonction print_r() permet d’afficher tout le contenu du tableau.
print_r($fruits);
Cette fonction est très utile pendant le développement pour voir rapidement les données.
Résultat print_r()
Array
(
[0] => Pomme
[1] => Banane
[2] => Orange
[3] => Fraise
)
5. Parcourir un tableau avec foreach
La boucle foreach sert à lire chaque valeur du tableau automatiquement.
foreach ($fruits as $fruit) {
echo $fruit;
}
PHP prend chaque élément un par un.
Résultat foreach
> Pomme
> Banane
> Orange
> Fraise
6. Les tableaux associatifs
Un tableau associatif utilise des clés personnalisées au lieu d’index numériques.
$personne = [
"nom" => "Fred",
"age" => 33,
"ville" => "Montréal"
];
Ici :
- nom → clé
- Fred → valeur
Résultat tableau associatif
> Nom : Fred
> Âge : 33
> Ville : Montréal
7. Parcourir un tableau associatif
foreach peut aussi récupérer :
- la clé
- la valeur
foreach ($personne as $cle => $valeur) {
echo $cle . " : " . $valeur;
}
Résultat parcours associatif
> nom : Fred
> age : 33
> ville : Montréal
8. Les tableaux imbriqués
Un tableau imbriqué est un tableau qui contient d’autres tableaux.
En programmation, c’est très utilisé pour organiser des données plus complexes.
Exemple :
$users = [
["Fred", 33],
["Marie", 25],
["Alex", 19]
];
Ici :
- Le tableau principal contient plusieurs tableaux
- Chaque petit tableau représente un utilisateur
Résultat tableau imbriqué
> Tableau #0
Nom : Fred
Âge : 33
> Tableau #1
Nom : Marie
Âge : 25
> Tableau #2
Nom : Alex
Âge : 19
9. Parcourir les tableaux imbriqués avec foreach
Une fois le tableau imbriqué créé, on peut le parcourir avec plusieurs boucles foreach.
Le principe :
- la première boucle parcourt le tableau principal
- la deuxième boucle parcourt le sous-tableau
10. Parcourir des tableaux séparés regroupés
Première méthode :
créer plusieurs tableaux séparés puis les regrouper.
$phpMenu = [
"Home" => "/index.php",
"Les Boucles" => "/php/boucle.php"
];
$htmlMenu = [
"Home" => "/index.php",
"Introduction HTML" => "/html/intro.php"
];
$HeaderMenus = [
"php" => $phpMenu,
"html" => $htmlMenu
];
Ici :
- php contient le tableau $phpMenu
- html contient le tableau $htmlMenu
Parcourir le tableau principal
foreach ($HeaderMenus as $type => $menu) {
echo $type;
}
Résultat :
php
html
Ici :
- $type = php, html
- $menu = le tableau complet
Résultat boucle principale
> Type : php
> Type : html
11. Parcourir les sous-tableaux
Maintenant, on veut parcourir les liens contenus dans chaque menu.
Il faut donc une deuxième boucle foreach.
foreach ($HeaderMenus as $type => $menu) {
foreach ($menu as $nom => $lien) {
echo $nom;
}
}
Comprendre
- Première boucle → parcourt php, html
- Deuxième boucle → parcourt les liens du menu
Exemple concret des variables
Dans cette boucle, chaque variable prend une valeur précise :
- $HeaderMenus = le tableau principal qui contient tous les menus
- $type = le type du menu courant (ex: php puis html)
- $menu = le sous-tableau du type courant
- $nom = le nom d'un lien (ex: Home, Les Boucles)
- $lien = l'URL associée (ex: /index.php, /php/boucle.php)
Exemple quand $type = "php" :
$menu = [
"Home" => "/index.php",
"Les Boucles" => "/php/boucle.php",
"Les Conditions" => "/php/condition.php"
];
$nom = "Home";
$lien = "/index.php";
Résultat double foreach
> MENU : php
- Home = /index.php
- Les Boucles = /php/boucle.php
- Les Conditions = /php/condition.php
> MENU : html
- Home = /index.php
- Introduction HTML = /html/intro.php
12. Même résultat avec tableau directement imbriqué
Deuxième méthode :
écrire directement tous les sous-tableaux dans le tableau principal.
$HeaderMenus = [
"php" => [
"Home" => "/index.php",
"Les Boucles" => "/php/boucle.php"
],
"html" => [
"Home" => "/index.php",
"Introduction HTML" => "/html/intro.php"
]
];
La structure change un peu...
Mais les boucles restent exactement les mêmes.
foreach ($HeaderMenus as $type => $menu) {
foreach ($menu as $nom => $lien) {
echo $nom;
}
}
Parce que dans les deux cas, PHP voit exactement la même structure finale.
13. Exemple réel : créer automatiquement un menu HTML
Maintenant qu’on sait parcourir les tableaux, on peut générer automatiquement un menu HTML.
<ul>
<?php
foreach ($HeaderMenus["php"] as $nom => $lien) {
echo '<li>
<a href="' . $lien . '">' . $nom . '</a>
</li>';
}
?>
</ul>
PHP va automatiquement créer :
- les balises <li>
- les liens <a>
- tout le menu
C’est exactement ce qu’on fait dans les vrais projets.
14. Accéder à un tableau dans un tableau
Pour accéder à une valeur précise, on utilise plusieurs index.
echo $users[0][0];
Comprendre
- [0] → premier tableau
- [0] → première valeur dans ce tableau
Résultat :
Fred
Accès tableau imbriqué
> Nom : Fred
> Âge : 33
15. Parcourir un tableau de tableaux
Pour parcourir un tableau qui contient d’autres tableaux, on utilise souvent plusieurs boucles foreach.
foreach ($users as $user) {
foreach ($user as $value) {
echo $value;
}
}
La première boucle parcourt les utilisateurs.
La deuxième boucle parcourt les valeurs de chaque utilisateur.
Résultat parcours multiple
> Utilisateur :
- Fred
- 33
> Utilisateur :
- Marie
- 25
> Utilisateur :
- Alex
- 19
16. Tableau associatif avec tableaux imbriqués
Les tableaux peuvent aussi mélanger :
- des clés personnalisées
- des tableaux numériques
$personne = [
"nom" => "Fred",
"langages" => [
"PHP",
"JavaScript",
"Python"
]
];
Résultat associatif imbriqué
> Nom : Fred
> Langage : PHP
> Langage : JavaScript
> Langage : Python
17. Tableau de tableau de tableau
Oui 😅 Un tableau peut contenir des tableaux… qui contiennent encore des tableaux.
C’est souvent utilisé dans :
- les API
- les bases de données
- les gros projets
$ecole = [
"Classe1" => [
[
"nom" => "Fred",
"age" => 33
],
[
"nom" => "Marie",
"age" => 25
]
]
];
Pour parcourir ce genre de structure, il faut plusieurs boucles.
foreach ($ecole as $classe) {
foreach ($classe as $eleve) {
echo $eleve["nom"];
}
}
Résultat tableau profond
> Élève : Fred
> Âge : 33
> Élève : Marie
> Âge : 25
18. Bonnes pratiques
Quand les tableaux deviennent très gros :
- donne des noms clairs aux clés
- évite les structures trop compliquées
- utilise print_r() pour voir les données
- utilise foreach pour parcourir facilement
Les tableaux sont partout en PHP :
- formulaires
- bases de données
- API
- JSON
- configuration
Résumé rapide
| Type | Description |
|---|---|
| Tableau simple | Liste de valeurs avec index numériques |
| Tableau associatif | Liste avec clés personnalisées |
| foreach | Parcourir automatiquement le tableau |
| print_r() | Afficher le contenu complet |