Kontrollstrukturen 5: foreach-Schleife
Folien
Falls keine PDF-Präsentation zu sehen ist: Direktdownload der PDF-Präsentation
foreach-Syntax:
foreach ($arrayname as $wert) { Anweisung }
gibt alle Werte des Arrays aus. Im aktuellen Beispiel ist $arrayname der Name der Array-Variablen, $wert ist eine (beliebige!) neue Variable, in der beim Durchlaufen des Arrays die jeweiligen Werte gespeichert werden Bsp.:
<?php
$tag = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
foreach ($tag as $value)
{
echo $value . "<br />";
}
?>
führt zur Ausgabe:
Sonntag
Montag
Dienstag
Mittwoch
Donnerstag
Freitag
Samstag
Funktioniert auch für assoziative Arrays:
foreach ($arrayname as $key => $value)
Beispiel:
<?php
$tag = array('SO' => "Sonntag", 'MO' => "Montag", 'DI' => "Dienstag");
foreach ($tag as $key => $value)
{
echo $value . "(Abkürzung: " . $key . ").<br />";
}
?>
führt zur Ausgabe:
Sonntag(Abkürzung: SO).
Montag(Abkürzung: MO).
Dienstag(Abkürzung: DI).
Übungen
Zusätzliche Dateien (Bilder, Klassendiagramme, HTML-Vorlagen) finden Sie in der Materialsammlung. Diese Übungen können Sie als txt-Datei herunterladen.
Übungen: PHP - foreach-Schleife
PHP_19-1: Einfache FOREACH-Schleife
Erzeugen Sie aus den folgenden beiden Arrays jeweils folgende Ausgabe:
Die Variable $variable[‘Schlüssel0’] enthält den Wert WERT0.
Die Variable $variable[‘Schlüssel1’] enthält den Wert WERT1.
Dabei entspricht $variable dem Arraynamen, SchlüsselX und WERTX sind Schlüssel bzw. Wert des Arrayelements mit dem entsprechenden Schlüssel.
A) Indiziertes Array
$artikel = array("Schuhe", "Jacken", "Hosen", "Mützen", "Pullover", "Brillen");
B) Assoziatives Array
$hauptstaedte = array('Frankreich' => "Paris", 'Spanien' => "Madrid", 'Großbritannien' => "London", 'Niederlande' => "Amsterdam");
PHP_19-2: Geheimschrift – Codetabelle mit FOREACH ausgeben
Öffnen Sie Aufgabe PHP_8-5. Lassen Sie sich eine Tabelle (!!) ausgeben, in der die einzelnen Codes übersetzt sind.
Tipp: Die Tabelle wird so aussehen:
<table border="1">
<tr>
<th>Geheimcode</th>
<th>Übersetzung</th>
</tr>
<tr>
<td>CODE1</td>
<td>ÜBERSETZUNG1</td>
</tr>
<td>CODE2</td>
usw.
Achten Sie darauf, dass der Quelltext entsprechende Zeilenumbrüche enthält.
PHP_19-3: Entschlüsselungsmaschine (Profi)
Erstellen Sie ein Programm, das eine Message in Geheimschrift in Klartext übersetzt. Dazu benötigen Sie explode():
$text = "Am Montag gehen wir in die Schule, am Dienstag bleiben wir zu Hause.";
$zerlegt = explode(" ", $text)
foreach ($zerlegt as $wert)
{
echo $wert . "<br />";
}