PHP 4 führte das foreach-Konstrukt ein, ähnlich wie Perl und andere Sprachen. Dies ist lediglich eine bequeme Möglichkeit, über ein Array zu iterieren. foreach kann nur auf Arrays verwendet werden und es tritt ein Fehler auf, wenn versucht wird, es auf andere Datentypen oder eine nicht initialisierte Variable zu verwenden. Es gibt zwei Syntaxen, wobei die zweite eine weniger wichtige, aber nützliche Erweiterung der ersten ist.
foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement
Das erste Format iteriert über das angegebene array_expression-Array. Bei jedem Durchlauf der Schleife wird $value der Wert der aktuellen Zelle zugewiesen und der Zeiger innerhalb des Arrays wird um einen Schritt vorwärts bewegt (sodass die nächste Zelle in der nächsten Schleife abgerufen wird).
Das zweite Format macht dasselbe, außer dass der Schlüsselname der aktuellen Zelle in jeder Schleife auch der Variablen $key zugewiesen wird.
Schauen wir uns zunächst die erste Anweisung an. Diese Anweisung bezieht sich auf einen Array--Ausdruck . Die as $val-Anweisung ruft sequentiell den Wert des Arrays ab und speichert ihn $val In Variablen kann diese Methode nur den Wert im Array abrufen, nicht jedoch den Indexwert des Arrays. Zum Beispiel:
$myArray=array("1"=>"val1","2"=>"val2","3"=>"val3"); foreach($myArray as $val) { print($val." "); }
Das Ergebnis wird ausgegeben: val1 val2 val3
Sehen wir uns zusätzlich zum Abrufen der Elemente im Array wie beim ersten Format das zweite an Format Zusätzlich zum Wert kann auch der Indexwert des Elements abgerufen und in der Variablen $key gespeichert werden. Wenn der Indexwert des Arrays nicht manuell festgelegt wurde, wird der Systemstandardeinstellungswert
zurückgegeben Sehen Sie sich das positive Beispiel an:
Sehen wir uns zunächst ein einfaches eindimensionales Array an:
$myArray=array("1"=>"val1","2"="val2","3"=>"val3"); foreach($myArray as $key=>$val) { print($key."=>".$val.";"); }
Das Programm gibt Folgendes aus: 1=>val1;2= >val2;3=>val3; Schauen wir uns als nächstes einen komplexeren zweidimensionalen Array-Durchlauf an. Das Programm lautet wie folgt:
$myArray=array( "1"=>array("11"=>"val11","12"=>"val12","13"=>"val13"), "2"=>array("21"=>"val21","22"=>"val22","23"=>"val23"), "3"=>array("31"=>"val31","32"=>"val32","33"=>"val33") ); print("<ul>"); foreach($myArray as $key=>$val) { print("<li>".$key."</li>"); if (is_array($val)) { //判断$val的值是否是一个数组,如果是,则进入下层遍历 print("<ul>"); foreach($val as $key=>$val) { print("<li>".$key."=>".$val."</li>"); } print("</ul>"); } } print("</ul>");
Ausgabeergebnis:
1 11=>val11 12=>val12 13=>val13 2 21=>val21 22=>val22 23=>val23 3 31=>val31 32=>val32 33=>val33
Ein weiteres Beispiel zur Lösung des Rätsels
<?php $a = array("1"=>"语文","2"=>"数学","3"=>"英语"); $b = array("1"=>"95","2"=>"99","3"=>"92"); foreach($a as $key=>$value){ echo $value; echo $b[$key]."<br>"; } ?>
Die Frage ist, warum der Wert im Ausgabearray $b $b[$key] anstelle von $b[$value sein muss ]?
Warum ist das so?
$a = array("1"=>"Chinesisch",2"=>"Mathematik",3"=>"Englisch");
Das obige und das eins unten Es ist genau das Gleiche
$a[1]="Chinesisch";
$a[2]="Mathematik"
$a[3]="Englisch"
Wie geben wir das obige Array aus?
Es muss echo $a[1] sein;
———————————————————————————— ———————————————— -
Einfach ausgedrückt: foreach
sein Format ist wie folgt: foreach (Array-Name als Index). => Wert)
Index ist In $a[1] oben ist die 1 hier der Index des Arrays!
Jetzt sollten Sie verstehen, warum $a[$key] so ausgegeben wird
Bitte denken Sie daran, dass die Ausgabemethode des Arrays immer $a[ ist, egal wie Sie es ändern. 1], nein Es ist $a['Sprache']
=============================== ======= ===========================
foreach() hat zwei Verwendungszwecke :
1: foreach(array_name as $value){ statement; }
Der array_name ist hier der Name des Arrays, das Sie durchlaufen möchten. In jeder Schleife wird der Wert des aktuellen Elements des array_name-Arrays $value und dem Index zugewiesen Innerhalb des Arrays wird ein Schritt nach unten verschoben, d. h. eine Schleife zurück nach unten, um das nächste Element abzurufen.
2:foreach(array_name as $key => $value){ statement; }
Der Unterschied zwischen dieser und der ersten Methode besteht darin, dass es einen zusätzlichen $key gibt, d. h. zusätzlich zur Zuweisung des Werts des aktuellen Elements zu $value, dem Schlüsselwert des aktuellen Elements wird in jeder Schleife auch der Variablen $key zugewiesen. Der Schlüsselwert kann ein tiefgestellter Wert oder eine -Zeichenfolge sein. Zum Beispiel „0“ in Buch[0]=1, „id“ in Buch[id]="001".
Das obige ist der detaillierte Inhalt vonZusammenfassung der Verwendungs- und Erweiterungsbeispiele von PHP foreach(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!