Cours

PHP Leçon 4

Tableaux et boucles

Ranger plusieurs valeurs dans un tableau et les parcourir avec foreach pour générer du HTML.

25 min

À la fin de cette leçon, tu sauras

  • Créer un tableau et lire ses éléments
  • Utiliser un tableau associatif (clé => valeur)
  • Parcourir un tableau avec foreach et for

Les tableaux

Un tableau range plusieurs valeurs dans une seule variable. Chaque élément a un numéro, qui commence à 0.

<?php
$langages = ["HTML", "CSS", "PHP"];

echo $langages[0];        // HTML
echo $langages[2];        // PHP
echo count($langages);    // 3

$langages[] = "SQL";      // ajoute un élément à la fin

Les tableaux associatifs

À la place des numéros, on peut utiliser des noms (des clés). C'est pratique pour décrire une chose avec plusieurs informations.

<?php
$eleve = [
    "prenom" => "Léa",
    "classe" => "BTS SIO",
    "age" => 18,
];

echo $eleve["prenom"] . " est en " . $eleve["classe"];

Parcourir un tableau : foreach

La boucle foreach passe sur chaque élément, l'un après l'autre. C'est elle qu'on utilise le plus pour afficher une liste.

<?php
$langages = ["HTML", "CSS", "PHP"];

echo "<ul>";
foreach ($langages as $langage) {
    echo "<li>$langage</li>";
}
echo "</ul>";

foreach ($eleve as $cle => $valeur) {
    echo "$cle : $valeur<br>";
}

À chaque tour, $langage prend la valeur suivante du tableau. Avec $cle => $valeur, on récupère aussi la clé.

Répéter un nombre de fois : for

<?php
for ($i = 1; $i <= 5; $i++) {
    echo "Tour numéro $i<br>";
}

Trois parties entre les parenthèses : le départ ($i = 1), la condition pour continuer ($i <= 5), et ce qui se passe à la fin de chaque tour ($i++, qui ajoute 1).

Attention : si la condition reste toujours vraie, la boucle ne s'arrête jamais. C'est une « boucle infinie », et la page finit par planter.

À toi de jouer

Affiche une liste HTML de fruits :

  • crée un tableau $fruits avec au moins 3 fruits ;
  • affiche <ul> avant la boucle et </ul> après ;
  • avec foreach, affiche chaque fruit dans un <li>.
index.php
  • $fruits est un tableau d'au moins 3 éléments
  • Un foreach parcourt $fruits
  • Chaque fruit est affiché dans un <li>
  • La liste est entourée de <ul> et </ul>
Bloqué ? Voir une solution
<?php
$fruits = ["Pomme", "Banane", "Kiwi"];

echo "<ul>";
foreach ($fruits as $fruit) {
    echo "<li>$fruit</li>";
}
echo "</ul>";

Quiz

1Avec $t = ["a", "b", "c"];, que vaut $t[1] ?
2Combien de fois s'exécute for ($i = 0; $i < 3; $i++) ?
3Quelle fonction donne le nombre d'éléments d'un tableau ?