foreach()
Die PHP-foreach()-Syntaxstruktur wird zum Durchlaufen von Operationen oder Ausgabearrays verwendet. foreach() kann nur zum Durchlaufen von Arrays oder Objekten verwendet werden, wenn versucht wird, sie für andere Datentypen zu verwenden Ein unbekannter Fehler tritt beim Initialisieren von Variablen auf.
Syntax:
foreach (array as $value) statement // 或者: foreach (array as $key => $value) statement
In der obigen Syntax weist jede Schleife den Wert der aktuellen Einheit $value und dem darin enthaltenen Zeiger zu Das Array Einen Schritt vorwärts bewegen. Im zweiten Syntaxformat wird in jeder Schleife auch der Variable $key der Schlüsselname der aktuellen Unit zugewiesen.
Beispiel:
<?php $arr_age = array("wang"=>18, "li"=>20, "zhang"=>25); foreach ($arr_age as $age) { echo $age,'<br />'; } ?>
Führen Sie diese Beispielausgabe aus:
18 20 25
Array-Schlüsselwert verwenden
<?php $arr_age = array("wang"=>18, "li"=>20, "zhang"=>25); foreach ($arr_age as $key=>$age) { echo $key,': ',$age,'<br />'; } ?>
Führen Sie die Beispielausgabe aus:
wang: 18 li: 20 zhang: 25
Wenn foreach mit der Ausführung beginnt, zeigt der Zeiger im Array automatisch auf die erste Einheit, was bedeutet, dass vor der foreach-Schleife kein Aufruf von reset() erforderlich ist.
foreach bearbeitet eine Kopie des angegebenen Arrays, nicht das Array selbst. Änderungen an den zurückgegebenen Array-Elementen wirken sich nicht auf das ursprüngliche Array aus (siehe Beispiel unten), aber wenn die foreach-Schleife bis zum Ende ausgeführt wird, zeigt der interne Zeiger des ursprünglichen Arrays auf das Ende des Arrays.
<?php $arr_age = array("wang"=>18, "li"=>20, "zhang"=>25); foreach ($arr_age as $age) { $age = $age+10; echo $age,'<br />'; } // 输出原数组 print_r($arr_age); ?>
Ausgabe der Ausführung des Beispiels:
28 30 35 Array ( [wang] => 18 [li] => 20 [zhang] => 25 )
to be in foreach Das Ändern der ursprünglichen Array-Elemente kann durch die Verwendung von Referenzen erreicht werden:
<?php $arr_age = array("wang"=>18, "li"=>20, "zhang"=>25); foreach ($arr_age as &$age) { $age = $age+10; echo $age,'<br />'; } // 输出原数组 print_r($arr_age); ?>
Ausgabe des Beispiels:
18 20 25 Array ( [wang] => 28 [li] => 30 [zhang] => 35 )
Mehrdimensionale Arrays durchqueren
Die foreach-Syntaxstruktur kann nur zum Durchlaufen eindimensionaler Arrays verwendet werden. Verwenden Sie im Allgemeinen die verschachtelte Foreach-Rekursion oder teilen Sie das ursprüngliche Array in eindimensionale Arrays auf. Das Array wird dann durch foreach durchlaufen.
Beispiel für das Mischen ein- und zweidimensionaler Arrays:
<?php $arr_age = array("wang"=>18, "li"=>20, "zhang"=>array("name"=>"小张", "age"=>25)); foreach ($arr_age as $age) { if(is_array($age)){ foreach ( $age as $detail) { echo $detail,'<br />'; } } else { echo $age,'<br />'; } } ?>
Die Traversalverarbeitung mehrdimensionaler Arrays erfordert die am besten geeignete Verarbeitungsmethode basierend auf der tatsächlichen Situation Datenstruktur.
PHP-Arrays werden durch HashTable-Tabellen implementiert, sodass foreach das Array entsprechend der Reihenfolge durchläuft, in der Elemente hinzugefügt werden. Wenn Sie nach Indexgröße iterieren möchten, sollten Sie eine for()-Schleife verwenden.
for()-Schleife zum Durchlaufen des Arrays
Wenn Sie ein Array kontinuierlicher Schlüsselwerte bearbeiten, können Sie auch eine for()-Schleife zum Durchlaufen des Arrays verwenden:
<?php $arr_age = array(18, 20, 25); $num = count($arr_age); for($i = 0; $i < $num; $i++){ echo $arr_age[$i]."<br />"; } ?>
Sie können auch list() und every() verwenden, um das Array zu durchlaufen, aber Tests haben ergeben, dass die Effizienz
nicht so gut ist wie foreach().
Die obige PHP-Array-Traversal-Foreach-Syntaxstruktur und Beispiele sind alle vom Herausgeber geteilten Inhalte. Ich hoffe, dass sie Ihnen eine Referenz geben können, und ich hoffe auch, dass Sie dem PHP-Chinesen mehr Aufmerksamkeit schenken Webseite.
Weitere Artikel zur PHP-Array-Traversierung für jede Syntaxstruktur und Beispiele finden Sie auf der chinesischen PHP-Website!