Heim >Backend-Entwicklung >PHP-Tutorial >So durchlaufen Sie Arrays mit foreach und for

So durchlaufen Sie Arrays mit foreach und for

伊谢尔伦
伊谢尔伦Original
2017-06-22 15:04:382376Durchsuche

Die

foreach-Syntaxstruktur wird zum Durchlaufen eines Arrays verwendet.

foreach()

Die PHP-Syntaxstruktur foreach() wird zum Durchlaufen von Operationen oder zum Ausgeben von Arrays verwendet. foreach() kann nur zum Durchlaufen von Arrays oder Objekten verwendet werden, wenn versucht wird, sie für andere Zwecke zu verwenden ZweckeEs tritt ein Fehler auf, wenn der Datentyp oder eine nicht initialisierte Variable ist.

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 zu und der Zeiger innerhalb des Arrays bewegt sich einen Schritt vorwärts. 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,&#39;<br />&#39;;
}
?>

Ausgabe der Ausführung des Beispiels:

18
20
25

Verwendung von Array-Schlüsselwerten

<?php
$arr_age = array("wang"=>18, "li"=>20, "zhang"=>25);
foreach ($arr_age as $key=>$age) {
    echo $key,&#39;: &#39;,$age,&#39;<br />&#39;;
}
?>

Ausgabe der Ausführung des Beispiels :

wang: 18
li: 20
zhang: 25

Tipp

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,&#39;<br />&#39;;
}
// 输出原数组
print_r($arr_age);
?>

Ausgabe des Beispiels:

28
30
35
Array ( [wang] => 18 [li] => 20 [zhang] => 25 )

Um die ursprünglichen Array-Elemente in foreach zu ändern, können Sie das obige Beispiel durch Referenz ändern 🎜>

Führen Sie die Beispielausgabe aus:
<?php
$arr_age = array("wang"=>18, "li"=>20, "zhang"=>25);
foreach ($arr_age as &$age) {
    $age = $age+10;
    echo $age,&#39;<br />&#39;;
}
// 输出原数组
print_r($arr_age);
?>

Durchlaufen Sie das
18
20
25
Array ( [wang] => 28 [li] => 30 [zhang] => 35 )
mehrdimensionale Array

Die foreach-Syntaxstruktur kann nur zum Durchlaufen des

einen verwendet werden -dimensionales Array

Um ein mehrdimensionales Array zu durchlaufen, verwenden Sie im Allgemeinen eine verschachtelte Foreach-Rekursion oder teilen Sie das ursprüngliche Array in ein eindimensionales Array auf und führen Sie dann einen Foreach-Durchlauf durch. Ein

zweidimensionales Array

Gemischtes Beispiel:

Ausführen dieser Beispielausgabe:
$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,&#39;<br />&#39;;
        }
    } else {
        echo $age,&#39;<br />&#39;;
    }
}
?>

für mehrdimensionales
18
20
小张
25
Array Beim Durchlaufen von

muss die am besten geeignete Verarbeitungsmethode basierend auf der tatsächlichen Datenstruktur übernommen werden. Erweitertes Vorlesen

PHP-Arrays werden durch Hash-Tabellen (HashTable) 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 die for()-Schleife zum Durchlaufen des Arrays verwenden:

Führen Sie die Beispielausgabe wie folgt aus:
<?php
$arr_age = array(18, 20, 25);
$num = count($arr_age);
for($i = 0; $i < $num; $i++){
    echo $arr_age[$i]."<br />";
}
?>

Tipps
18
20
25

Sie können auch list() und every() verwenden, um das Array zu durchlaufen, aber der Test ergab, dass die Effizienz stimmt nicht so gut wie foreach().

Das obige ist der detaillierte Inhalt vonSo durchlaufen Sie Arrays mit foreach und for. 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