Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der Unterschied zwischen for- und foreach-Schleifendurchlauf in PHP?

Was ist der Unterschied zwischen for- und foreach-Schleifendurchlauf in PHP?

一个新手
一个新手Original
2017-09-08 10:01:251678Durchsuche

Das Durchlaufen eines Arrays ist die häufigste Sache in der Programmierung. Hier besprechen wir die beiden Methoden von 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;;
}

Ausgabeergebnis: a 22 c

Schleife 2:

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

Diese Anweisung hat keine Ausgabe

Analyse:

Schleife 1 gibt nur die ersten beiden Einheiten des Arrays $arr1 aus, während $arr2 in Schleife 2 nichts ausgibt.

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 $i8f7d9763309188dabf31014d7e8cd506a 3=>22 5=>b 4=> ;c 8=>d

Schleife 4:

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

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 Index und 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).

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen for- und foreach-Schleifendurchlauf in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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