Menu
Coddy logo textTech

Itérer avec des boucles imbriquées

Fait partie de la section Logique & Flux du Journey PHP de Coddy. Leçon 30 sur 68.

Lorsque vous travaillez avec des tableaux à deux dimensions, vous devez souvent traiter chaque élément, ce qui nécessite de parcourir chaque ligne, puis chaque colonne de cette ligne. C’est là que les boucles imbriquées deviennent indispensables. Vous utilisez une boucle à l’intérieur d’une autre pour parcourir systématiquement toute la structure de la grille.

La boucle externe parcourt chaque ligne du tableau à 2 dimensions, tandis que la boucle interne traite chaque élément de la ligne actuelle. Voici comment cela fonctionne avec une boucle foreach :

<?php
$schedule = [
    ["Meeting", "Lunch", "Presentation"],
    ["Training", "Review", "Planning"],
    ["Workshop", "Break", "Demo"]
];

foreach ($schedule as $day) {
    foreach ($day as $appointment) {
        echo $appointment . "\n";
    }
}
?>

Vous pouvez également utiliser des boucles for traditionnelles lorsque vous avez besoin de davantage de contrôle sur les indices. Cette approche vous donne accès à la fois aux positions de ligne et de colonne :

<?php
for ($row = 0; $row < count($schedule); $row++) {
    for ($col = 0; $col < count($schedule[$row]); $col++) {
        echo "Day " . ($row + 1) . ", Time " . ($col + 1) . ": " . $schedule[$row][$col] . "\n";
    }
}
?>

Ce modèle de boucles imbriquées est fondamental pour traiter complètement les tableaux 2D, que vous affichiez des données, effectuiez des calculs ou recherchiez des valeurs spécifiques dans toute la structure de la grille.

challenge icon

Défi

Facile

Vous recevrez une entrée : un tableau 2D représentant la disposition des places d’une salle de classe au format JSON. Chaque tableau interne représente une rangée de places, et chaque élément contient soit le nom d’un élève, soit une chaîne vide pour les places vacantes. Lisez l’entrée, convertissez la chaîne JSON en tableau 2D, utilisez des boucles imbriquées pour parcourir toute la disposition des places, puis affichez le nom de chaque élève ainsi que sa position au format : Row X, Seat Y: Name

Ignorez les places vacantes (chaînes vides) et affichez uniquement les informations concernant les places occupées. Les rangées et les places doivent être numérotées à partir de 1 (et non de 0).

Format d’entrée : une ligne contenant un tableau JSON représentant la disposition des places (exemple : [["Alice","Bob",""],["","Charlie","Diana"],["Eve","","Frank"]])

Sortie attendue : chaque place occupée affichée sur une ligne distincte au format Row X, Seat Y: Name, où X est le numéro de la rangée et Y est le numéro de la place (tous deux commençant à 1)

Essayez vous-même

<?php
// Lire l'entrée JSON
$input = trim(fgets(STDIN));

// Convertir la chaîne JSON en tableau 2D
$seating = (array)json_decode($input, true);

// TODO: Écrivez votre code ci-dessous
// Utilisez des boucles imbriquées pour parcourir les rangées et les sièges
// N'oubliez pas de sauter les sièges vides et de numéroter les rangées/sièges en commençant par 1


?>
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux

Entraînez-vous par vous-même : Compilateur PHP en ligne