php, codeschnipsel, php beispielen
PHP - foreach Schleife
Hypertext Preprocessor

Navigation
Home
Fachbücher
Support Forum
Webmaster News
Script Newsletter
Kontakt
Script Installation
Php
Php Tutorials
Impressum

Userbereich
kostenlos Anmelden
Memberliste

Script Datenbank
Script Archiv
Script Top 20
Screenshots
Testberichte

Suche

 
Script Seite

Unsere Php Scripts
Counter Script
Umfrage Script
Bilder Upload Script
Terminverwaltung
Simple PHP Forum
RSS Grabber

Script Mods
phpBB Adsense Mode

Tools und Generatoren
.htpasswd Generator
md5 Generator
base64 Generator
ICQ Generator
Colorpicker
Unix timestamp Tool
TLD Liste
Webkatalog Verzeichnis

yellowgrey.de
Bei den Anbieter yellowgrey.de bekommt man alles w...

kr2domains.de
Bei diesen Anbieter bekommen sie verschiedene Länd...

weitere Anbieter
PHP Space Community auf Facebook PHP Space Community auf Twitter RSS Feeds der PHP Space Community

 

Statistik
20 Gäste Online
0 Member Online
571 Besucher heute
1825 Besucher gestern
 

foreach Schleife in Php

Sie befinden sich: Home > Php > foreach Schleife in Php

Die PHP Funktion foreach(); stellt eine einfache und schnelle Lösung da, wenn jedes Element eines Array überprüft oder verändert werden soll. Man spricht hierbei auch von einer iterativen Funktion. Eine foreach(); Schleife kann ausschließlich auf Arrays angewendet werden, eine Anwendung auf Integer oder Charakterstrings, oder allgemein anderen Variablen führt zu Fehlern. PHP stellt zwei Arten der foreach(); Schleife zu Verfügung, wobei die zweite Variante etwas ungewöhnlicher, jedoch gelegendlich zum Einsatz kommt.

foreach (array as $wert)
Ausdruck ( z.B. echo $wert; )

foreach (array as $key => $wert)
Ausdruck ( z.B. echo $wert; )

Die erste Funktion schreibt bei jedem Durchlauf des Arrays das aktuelle Element in die Variable $wert, und inkrementiert ( erhöhen um eins ) den internen Zeiger auf das Array um eins, um auf das nächste Element zugreifen zu können.

Die zweite Funktion der foreach(); Schleife gleicht grundsätzlich der ersten, jedoch wird nicht der Feldinhalt sondern der Feldname an die Varibale $key übergeben. Dies ist dann sinnvoll wenn es sich um ein Array mit assoziativen Feldindizes handel.

Der interne Zeiger auf das entsprechende Array wird beim Aufruf von foreach(); automatisch auf das erste Element gesetzt, so das ein zusätzlicher Aufruf von reset(); entfallen kann.

Sollte das Array vor dem Aufruf einer foreach(); Schleife bereits referenziert worden sein, ist zu beachten das foreach(); selbst nur auf die Kopie zugreift, und das Orginal auf diese Weise nicht verändert werden kann. ( Um beide Arrays sowohl das Original wie auch die Referenz verändern zu können muss der Befehl each(); verwendet werden ( siehe das Beispiel für die Möglichkeit while - Schleifen durch foreach(); zu ersetzen )).

Das folgende Beispiel erläutert die grundlegende Funktionsweise :

 1 <?php
 2 $feld_eins 
= array(1234);
 3
// das & Zeichen vor $wert muss verwendet 
 4 // werden damit der Wert des Elements verändert 
 5 // werden kann 
 6
 7
foreach ($feld_eins as &$wert) {
 8     
$wert $wert 2;
 9 }x
10
// $feld_eins hat nun folgenden Inhalt (2, 4, 6, 8)
11
12 // ein weiteres Beispiel diesesmal 
13 // für ein zweidimensionales Array
14
$feld_zwei = array();
15
16
// eine für PHP ungewöhnliche 
17 // Zuweisung für Felder eines Arrays
18
$a[0][0] = "a";
19
$a[0][1] = "b";
20
$a[1][0] = "y";
21
$a[1][1] = "z";
22
23 foreach (
$feld_zwei as $wert1) {
24     foreach (
$wert1 as $wert2) {
25         echo 
"$wert2";
26     }
27 }
28
// für assoziative Arrays, die Ausgabe 
29 // bezieht sich hier auf die Indizes z.B. "a" 
30
$feld_drei = array("a"=>"1","b"=>"2", "c"=>"3","d"=>"4");
31 foreach (
$feld_eins as $key =>$wert_3) {
32     echo 
$wert_3// abcd
33
}
34
?>

foreach(); ist schneller als while(), das folgende Beispiel zeigt wie man eine while - Schleife durch eine foreach(); Schleife ersetzen kann

1 <?php
2
// reset(); muss ausgeführt werden 
3 // damit der interne Zeiger auf das erste 
4
reset($feld); 
5
// Element gesetzt wird.
6
while(list($key$wert) = each($feld)){
7     
$feld[$key] = $wert 1;
8 }
9
?>

Obfohl es funktionale Unterschiede gibt , verhält sich das folgende Beispiel wie das oben aufgeführte, ist jedoch erheblich schneller.

1 <?php
2
// der interne Zeiger wird 
3 // automatisch durch den Aufruf auf 
4 // das erste Element gesetzt
5
foreach($feld as $key => $wert){
6     
$feld[$key] = $wert 1;
7 }
8
?>

 

Man sollte vor den ausführen einer foreach Schleife, die Variable mit den PHP Befehl is_array() prüfen, da ansonsten eine Fehlermeldung ausgegeben wird, wenn die Variable kein Array ist.

weiter Dateihandling mit PHP

Was ist PHP ?