Sous-solP PHPPièce 3/7Débutant

Boucles et tableaux

Ranger plusieurs valeurs dans un tableau, y compris associatif, et les parcourir avec foreach, for et while.

Ce que tu vas apprendre

  • Créer un tableau simple et un tableau associatif.
  • Parcourir un tableau avec foreach, et répéter du code avec for et while.
  • Utiliser quelques fonctions pratiques comme count, in_array et array_map.

Un tableau simple

Un tableau (array) range plusieurs valeurs dans une seule variable. Chaque valeur a une position, appelée indice, qui commence à 0.

<?php
$ingredients = ["farine", "oeufs", "lait"];

echo $ingredients[0]; // farine
echo count($ingredients); // 3

$ingredients[] = "sucre"; // ajoute à la fin

count renvoie le nombre d'éléments. Les crochets vides [] ajoutent un élément en fin de tableau.

Le tableau associatif

Au lieu d'un numéro, tu peux repérer chaque valeur par un nom, appelé clé. C'est un tableau associatif.

<?php
$recette = [
    "titre" => "Crêpes",
    "duree" => 30,
    "vegetarien" => true,
];

echo $recette["titre"]; // Crêpes
$recette["duree"] = 25; // modifier

La flèche => relie la clé à sa valeur. Ce format correspond à ce que tu rencontreras plus tard avec les bases de données et le JSON.

Des tableaux dans des tableaux

Une liste de recettes est un tableau dont chaque élément est lui-même un tableau associatif.

<?php
$recettes = [
    ["titre" => "Crêpes", "duree" => 30],
    ["titre" => "Ratatouille", "duree" => 60],
    ["titre" => "Tarte aux pommes", "duree" => 45],
];

echo $recettes[1]["titre"]; // Ratatouille

On lit de l'extérieur vers l'intérieur : d'abord la position dans la liste, puis la clé.

foreach : parcourir un tableau

foreach exécute un bloc de code pour chaque élément d'un tableau. C'est la boucle que tu utiliseras le plus.

recettes.php
<ul>
<?php foreach ($recettes as $recette): ?>
  <li><?= $recette["titre"] ?> (<?= $recette["duree"] ?> min)</li>
<?php endforeach; ?>
</ul>

À chaque tour, $recette contient l'élément suivant. La syntaxe avec : et endforeach est pratique dans les pages HTML, car elle évite les accolades.

Pour récupérer aussi la clé :

<?php
foreach ($recette as $cle => $valeur) {
    echo "$cle : $valeur\n";
}
Les valeurs affichées dans du HTML doivent être protégées avant d'être envoyées au navigateur. Tu verras comment au chapitre sur les formulaires, avec htmlspecialchars.

for et while

Quand tu sais combien de fois répéter, utilise for. Il a trois parties : le départ, la condition de continuation et le pas.

<?php
for ($i = 1; $i <= 3; $i++) {
    echo "Étape $i\n";
}

$i++ ajoute 1 à $i à chaque tour. Quand la condition devient fausse, la boucle s'arrête.

while répète tant qu'une condition reste vraie :

<?php
$portions = 1;
while ($portions < 8) {
    $portions = $portions * 2;
}
echo $portions; // 8

Une boucle while dont la condition ne devient jamais fausse tourne sans fin. Vérifie toujours qu'une variable change à chaque tour.

Quelle boucle choisir

BesoinBoucle
Parcourir tous les éléments d'un tableauforeach
Répéter un nombre de fois connufor
Répéter jusqu'à ce qu'une condition changewhile

Fonctions utiles sur les tableaux

<?php
$ingredients = ["farine", "oeufs", "lait"];

var_dump(in_array("lait", $ingredients)); // bool(true)
echo implode(", ", $ingredients);          // farine, oeufs, lait
sort($ingredients);                        // trie par ordre alphabétique

$majuscules = array_map('strtoupper', $ingredients);

in_array teste la présence d'une valeur, implode assemble un tableau en texte, sort trie le tableau en place. array_map applique une fonction à chaque élément et renvoie un nouveau tableau.

Pour vérifier qu'une clé existe, isset ou array_key_exists conviennent :

<?php
if (isset($recette["photo"])) {
    echo $recette["photo"];
}

isset renvoie faux si la clé est absente ou vaut null.

Pour une clé qui peut manquer, écris $recette["photo"] ?? "defaut.jpg". Tu évites un avertissement et tu obtiens une valeur de secours.

À retenir

  • Un tableau range plusieurs valeurs ; les positions commencent à 0, count donne la taille.
  • Un tableau associatif repère ses valeurs par des clés avec =>.
  • foreach parcourt un tableau élément par élément, avec ou sans la clé.
  • for sert quand le nombre de tours est connu, while tant qu'une condition est vraie.
  • in_array, implode, sort et array_map couvrent beaucoup de besoins courants.
  • ?? et isset évitent les erreurs sur une clé absente.

Pour aller plus loin

Sources officielles

Ensuite

Projet
Lignes de code
Niveau
Sous-sol
Appartement
PHP
Pièce
3/7
Plan n°
php/03.boucles-et-tableaux
Lignes de code · fiches rédigées à partir des documentations officielles, sources citées en bas de chaque page.