Foreach-Schleifen

Die Foreach-Schleife ist eine Schleife zum durchlaufen von Arrays:

<?php
	$tage = array("Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag");
	
	foreach($tage as $tag)
	{
		echo $tag."<br />";
	}
?>

Das Beispiel zeigt den typischen Einsatz einer Foreach-Schleife: ein Array mit allen Wochentagen soll durchlaufen werden. Der Schleifenkopf nimmt das Array „$tage“ und holt sich das 1. Element und weist es der Variablen „$tag“ zu. Das tolle daran ist, dass wir innerhalb der Schleife mit den Werten des Arrays arbeiten können. In diesem Fall ist es eine einfache Variable, doch wenn es ein multidimensionales Array wäre, könnten wir auf alle Felder zugreifen ($tag[0][0], $tag[0][1], etc.). Und auch für assoziative Arrays ist die foreach-Schleife wie gemacht:

<?php
	//Jeder Spieler hat eine bestimmte Punktzahl
	
	$spieler["Maurice"] = 4233;
	$spieler["Anna"] = 3872;
	$spieler["Sarah"] = 1497;
	
	foreach($spieler as $index => $value)
	{
		echo $index." hat ".$value." erreicht <br />";
	}
?>

Die Variable „index“ greift dabei immer auf den Index-Namen des assoziativen Arrays zu, in diesem Fall also „Maurice“, „Anna“ und „Sarah“. Die Variable „value“ beinhaltet den Wert der Array-Variable, also „4233“, „3872“ und „1497“. Man muss nicht „index“ und „value“ verwenden, man kann auch aussagekräftigere Variablennamen verwenden:

<?php
	//Jeder Spieler hat eine bestimmte Punktzahl
	
	$spieler["Maurice"] = 4233;
	$spieler["Anna"] = 3872;
	$spieler["Sarah"] = 1497;
	
	foreach($spieler as $name => $punkte)
	{
		echo $name." hat ".$punkte." erreicht <br />";
	}
?>

Die foreach-Schleife funktioniert unabhängig von den Indizes. Also damit eine for-Schleife ein Array durchlaufen kann, müssen die Indizes lückenlos sortiert sein ($tage[0],
$tage[1], $tage[2], usw.), einer foreach-Schleife ist das egal, die durchläuft einfach alle Array-Elemente:

<?php
	$werte[rand(999, 9999)] = "Wert 1";
	$werte[rand(999, 9999)] = "Wert 2";
	$werte[rand(999, 9999)] = "Wert 3";
	
	foreach($werte as $index => $wert)
	{
		echo $wert." - Index: ".$index."<br />";
	}
?>

Wir erzeugen 3 Container im Array „$werte“ und die Indizes sind jeweils zufällig zwischen 999 und 9999. Dennoch durchläuft das Array problemlos alle 3 Container und gibt uns den Wert der jeweiligen Index-Zahl aus.

hier geht's weiter...



Feedback Formular