Menu
Coddy logo textTech

Iterieren mit verschachtelten Schleifen

Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy. Lektion 30 von 68.

Bei der Arbeit mit 2D-arrays musst du häufig jedes einzelne Element verarbeiten. Dazu musst du jede row und anschließend jede Spalte innerhalb dieser row besuchen. Hier werden nested loops unverzichtbar. Du verwendest eine Schleife innerhalb einer anderen, um die gesamte grid-Struktur systematisch zu durchlaufen.

Die äußere Schleife durchläuft jede row des 2D-array, während die innere Schleife jedes Element innerhalb der aktuellen row verarbeitet. So funktioniert dies mit einer foreach-Schleife:

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

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

Du kannst auch traditionelle for-Schleifen verwenden, wenn du mehr Kontrolle über die Indizes benötigst. Dieser Ansatz gibt dir Zugriff auf die Positionen von Zeile und Spalte:

<?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";
    }
}
?>

Dieses Muster verschachtelter Schleifen ist grundlegend für die vollständige Verarbeitung zweidimensionaler Arrays, unabhängig davon, ob du Daten anzeigst, Berechnungen durchführst oder im gesamten Gitter nach bestimmten Werten suchst.

challenge icon

Aufgabe

Einfach

Du erhältst eine Eingabe: ein 2D-Array, das eine Sitzanordnung in einem Klassenzimmer im JSON-Format darstellt. Jedes innere Array stellt eine Sitzreihe dar, und jedes Element enthält entweder den Namen eines Schülers oder eine leere Zeichenfolge für freie Plätze. Lies die Eingabe ein, konvertiere die JSON-Zeichenfolge in ein 2D-Array, verwende verschachtelte Schleifen, um die gesamte Sitzanordnung zu durchlaufen, und gib den Namen jedes Schülers zusammen mit seiner Position im Format Row X, Seat Y: Name aus.

Überspringe freie Plätze (leere Zeichenfolgen) und gib nur Informationen für besetzte Plätze aus. Reihen und Plätze sollen beginnend bei 1 (nicht 0) nummeriert werden.

Eingabeformat: Eine Zeile mit einem JSON-Array, das die Sitzanordnung darstellt (Beispiel: [["Alice","Bob",""],["","Charlie","Diana"],["Eve","","Frank"]])

Erwartete Ausgabe: Jeder besetzte Platz wird in einer separaten Zeile im Format Row X, Seat Y: Name ausgegeben, wobei X die Reihennummer und Y die Platznummer ist (beide beginnend bei 1).

Probier es selbst

<?php
// Lies die JSON-Eingabe
$input = trim(fgets(STDIN));

// JSON-String in 2D-Array umwandeln
$seating = (array)json_decode($input, true);

// TODO: Schreibe deinen Code darunter
// Verwende verschachtelte Schleifen, um durch Reihen und Sitze zu iterieren
// Denke daran, leere Sitze zu überspringen und Reihen/Sitze ab 1 zu nummerieren


?>
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Online-PHP-Compiler