Heim > Backend-Entwicklung > PHP-Tutorial > Wie man den Unterschied zwischen den for- und foreach-Schleifenstrukturen in PHP zum Durchlaufen von Arrays versteht

Wie man den Unterschied zwischen den for- und foreach-Schleifenstrukturen in PHP zum Durchlaufen von Arrays versteht

一个新手
Freigeben: 2023-03-16 13:04:01
Original
1844 Leute haben es durchsucht

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].&#39; &#39;;
}
Nach dem Login kopieren

Ausgabeergebnis: a 22 c

Schleife 2:

for($i=0,$num=count($arr2);$i<$num;$i++){
    echo $arr2[$i].&#39; &#39;;
}
Nach dem Login kopieren

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.&#39;=>&#39;.$value.&#39; &#39;;
}
Nach dem Login kopieren

Ausgabeergebnis: 1=>a 3=>22 5=>b 4=> ;c 8=>d

Schleife 4:

foreach($arr2 as $key=>$value){
    echo $key.&#39;=>&#39;.$value.&#39; &#39;;
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage