Das Durchlaufen eines Arrays ist die häufigste Sache in der Programmierung. Hier besprechen wir die Methoden for und foreach:
Zuerst bereiten wir zwei Arrays für das Durchlaufen vor:
$arr1=array(1 =>'a', 3=>22, 5=>'b', 4=>'c', 8=>'d');
$arr2=array(' a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc', 'd'=>'ddd', 'e'=> ;'eee');
1: für Schleifenstruktur
Schleife 1:
for($i=0,$num=count($arr1);$i<$num;$i++){ echo $arr1[$i].' '; }
Ausgabeergebnis: a 22 c
Schleife 2:
for($i=0,$num=count($arr2);$i<$num;$i++){ echo $arr2[$i].' '; }
Diese Anweisung hat keine Ausgabe
Analyse:
Schleife 1 gibt nur die ersten beiden Einheiten des Arrays $arr1 aus, während $arr2 in Schleife 2 dann nichts gedruckt wird.
Der Grund dafür ist, dass die for-Schleife um Zahlen erhöht wird, sodass for nur auf das Index-Array zugreifen kann. Beispielsweise greift Schleife 1 inkrementell auf das Array $arr1 von $i=0 bis $i=4 zu Die Schlüssel im Array $arr1 umfassen 0 bis 4 Zellen, aber die Schlüssel im Array sind: 1,3,5,4,8. Auf Array-Einheiten mit Schlüsselwerten über 4 (5=>'b',8=>'d') wird nicht zugegriffen, da count($arr1)=5, also $i<5; Nur Ergebnis: a 22 c; für alle Schlüssel in $arr2 sind Zeichen, keine Zahlen, daher erfolgt keine Ausgabe in Schleife 2.
2: foreach-Schleifenstruktur
Schleife 3:
foreach($arr1 as $key=>$value){ echo $key.'=>'.$value.' '; }
Ausgabeergebnis: 1=>a 3=>22 5=>b 4=> ;c 8=>d
Schleife 4:
foreach($arr2 as $key=>$value){ echo $key.'=>'.$value.' '; }
Ausgabeergebnis: a=>aaa b=>bbb c=>ccc d=>ddd e= >eee
Analyse: Die
foreach-Schleifenstruktur führt eine Schleife entsprechend dem Zeiger innerhalb des Arrays aus des Arrays Der Zeiger zeigt automatisch auf die erste Einheit. Daher wird die nächste Einheit in der nächsten Schleife abgerufen und es ist nicht erforderlich, das gesamte Array gemäß dem Array-Schlüssel zu durchlaufen. Dies ist auch der Unterschied zwischen foreach und for. Natürlich kann foreach nur für Arrays und Objekte verwendet werden, und da foreach auf einem internen Array-Zeiger basiert, kann das Ändern seines Werts in einer Schleife zu unerwarteten Ergebnissen führen Verhalten. Hinweis: Jede for-Schleife bearbeitet den Wert unter dem entsprechenden Index, und Änderungen an jedem Wert werden auch im durchlaufenen Objekt widergespiegelt. Jedes Mal, wenn foreach eine Einheit betreibt, übernimmt es deren Index und Wert in Variablen oder entnimmt den Wert nur in eine Variable und verarbeitet die Variablen dann separat mit dem Index und dem Wert, ohne das durchquerte Objekt selbst zu beeinflussen. Wenn Sie den Wert im Objekt während des Durchlaufvorgangs ändern möchten, müssen Sie vor der Variablen in der Deklaration ein &-Symbol hinzufügen. Zum Beispiel: foreach($array as &$value).
Fazit: Wenn ein Array fortlaufende Zahlen als Schlüssel der Array-Einheiten verwendet, kann eine for-Schleifenstruktur verwendet werden. Wenn Sie nicht sicher sind, ob die Schlüssel des Arrays oder die Schlüssel des Arrays Zeichen enthalten, sollten Sie die foreach-Schleifenstruktur verwenden. .
Das obige ist der detaillierte Inhalt vonWie man den Unterschied zwischen den for- und foreach-Schleifenstrukturen in PHP zum Durchlaufen von Arrays versteht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!