SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=134&group=25
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


foreach-Schleife


Die foreach-Schleife ermöglicht es, auf einfache Weise ein Array zu durchlaufen. foreach funktioniert nur in Verbindung mit Arrays. Wenn Sie versuchen, foreach mit einer Variablen eines anderen Datentyps oder einer nicht initialisierten Variablen zu benutzen, gibt PHP einen Fehler aus.


Definition

foreach (array_expression as $value) {
  Anweisung/en;
}

Mithilfe von foreach wird das Durchlaufen eines Arrays wesentlich vereinfacht. Gegenüber der while-Schleife mit list und each ist die foreach-Schleife syntaktisch deutlich im Vorteil.

Beispiel – while

<?php
$zahlen = array (10, 20, 30, 40);
while (list(, $value) = each ($zahlen)) {
  echo "Wert: $value<br>\n";
}
?>

Beispiel – foreach

<?php
foreach ($zahlen as $value) {
  echo "Wert: $value<br>\n";
}
?>

Das Array wird von Anfang bis Ende durchlaufen und bei jedem Schleifendurchlauf wird das aktuelle Element der Variablen array_expression zugewiesen. Jedes Arrayelement kann wiederum ein Array sein, dann könnte mit einer verschachtelten foreach-Schleife auch dieses Array ausgewertet werden.

Beispiel – mit assoziativem Array

$personen = array("Matthias","Caroline","Gülten");

foreach ($personen as $person) {
  echo "Name: $person<br>\n";
}
// Ausgabe:
// Name: Matthias
// Name: Caroline
// Name: Gülten

Typischerweise ist es erlaubt, einzelne Elemente eines solchen Arrays mit unterschiedlichen Datentypen zu belegen. Das können auch weitere Arrays sein.


Erweiterte Syntax

Sollten Sie Arrays mit Schlüssel-Wert-Paaren bauen, kann foreach mit einer erweiterten Syntax diese Paare direkt auslesen. Die grundlegende Syntax lautet:


Definition

foreach (array as $key => $value) {
  Anweisung/en;
}

Hier wird der Operator => eingesetzt, der schon bei der Konstruktion des Arrays verwendet wurde.

Beispiel

<?php
$person = array("Vorname" => "Caroline",
      "Nachname" => "Kannengiesser",
      "Alter" => 25,
      "Ort" => Berlin);
foreach ($person as $key => $val) {
  echo "Feld $key hat den Wert: $val<br>";
}
?>

Ausgabe
Feld Vorname hat den Wert: Caroline
Feld Nachname hat den Wert: Kannengiesser
Feld Alter hat den Wert: 25
Feld Ort hat den Wert: Berlin

Hinweis: Mehr zum Thema Arrays finden Sie im Abschnitt 3.10 »Arrays«.