Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Entwicklung (21) – Verwenden Sie foreach, list, while und every, um Arrays zu durchlaufen – PHPStorm
Es gibt viele Möglichkeiten, Arrays zu durchlaufen. In anderen Sprachen werden Arrays mit aufeinanderfolgenden Indizes im Allgemeinen mit for durchlaufen, basieren jedoch im Allgemeinen auf dem speziellen PHP-Array , wir verwenden foreach und manchmal auch jedes.
Werfen wir zunächst einen Blick auf Arrays in den meisten Sprachen: $arr = array("a", "b", "c", "d", "e", " f", "g");
Dann werfen wir einen Blick auf die Array-Formen, die in PHP existieren können: $arr2 = array("a", "b", 100= >"c", "d", "xxx"=>"e", "f", "g");
Ja, arr2 kann nicht für Traversal verwendet werden ~~Es gibt also eine leistungsstarke foreach-Methode~~
foreach hat zwei Ausdrücke:
1 (Array als benutzerdefinierte Variablen).
2. foreach (Array als tiefgestellte Variable => Wertvariable)
list() weist einer Reihe von Variablen in einem Vorgang einen Wert zu. Beachten Sie, dass list nur nacheinander indizierte Arrays in Variablen konvertieren kann.
Ich persönlich glaube nicht, dass die Liste irgendwelche Vorteile hat, außer wenn sie mit der Explosionsfunktion verwendet wird. explosion() explodiert einen String in ein Array.
Im folgenden Code wird ein Beispiel demonstriert: list($name, $web) = explosion("_",$str);
each() gibt den Schlüsselnamen und den Schlüsselwert des aktuellen Elements zurück und bewegt den internen Zeiger vorwärts.
current() – Gibt den Wert des aktuellen Elements im Array zurück.
end() – Setzt den internen Zeiger auf das letzte Element im Array und gibt es aus.
next() – Setzt den internen Zeiger auf das nächste Element im Array und gibt es aus.
prev() – zeigt den internen Zeiger auf das vorherige Element im Array und gibt es aus.
reset() – Setzt den internen Zeiger auf das erste Element im Array und gibt es aus.
Mit while können Sie das Array durchlaufen: while ($tmp = every($arr)){ print_r($tmp); echo '0c6dc11e160d3b678d68754cc175188a'; 🎜>
<?php /** * 遍历数组 * for只可以遍历$arr这样下标连续的数组 * foreach可以遍历$arr、$arr2等任何类型的数组 * foreach的2种用法: * 1、foreach(数组 as 自定义变量) * 2、foreach(数组 as 下标变量 => 值变量) */ $arr = array("a", "b", "c", "d", "e", "f", "g"); $arr2 = array("a", "b", 100=>"c", "d", "xxx"=>"e", "f", "g"); $group = array( array("name"=>"iwanghang", "age"=>18, "sex"=>"男", "email"=>"iwanghang@qq.com"), // $group[0] array("name"=>"queen", "age"=>14, "sex"=>"女", "email"=>"queen@qq.com"), // $group[1] array("name"=>"king", "age"=>55, "sex"=>"男", "email"=>"king@qq.com"), // $group[2] ); echo '---------- 使用for遍历数组 ----------<br>'; for ($i=0; $i<count($arr); $i++){ echo $arr[$i].'<br>'; } /* 打印结果: a b c d e f g */ echo '---------- 使用foreach遍历数组 ----------<br>'; foreach ($arr2 as $value){ echo $value.'<br>'; } /* 打印结果: a b c d e f g */ echo '---------- 使用foreach遍历数组 2 ----------<br>'; foreach ($arr2 as $bb => $vv){ echo $bb.'-----'.$vv.'<br>'; } /* 打印结果: 0-----a 1-----b 100-----c 101-----d xxx-----e 102-----f 103-----g */ echo '---------- 打印二位数组 ----------<br>'; echo '<pre class="brush:php;toolbar:false">'; print_r($group); echo ''; /* 打印结果: Array ( [0] => Array ( [name] => iwanghang [age] => 18 [sex] => 男 [email] => iwanghang@qq.com ) [1] => Array ( [name] => queen [age] => 14 [sex] => 女 [email] => queen@qq.com ) [2] => Array ( [name] => king [age] => 55 [sex] => 男 [email] => king@qq.com ) ) */ echo '
' . $col . ' | '; } }else{ echo ''; } echo ' |
'; print_r($people); echo ''; /* * 打印结果: Array ( [1] => 郭靖 [value] => 郭靖 [0] => 0 [key] => 0 ) */ $people = each($arr3); print_r($people); // 打印结果:Array ( [1] => 黄蓉 [value] => 黄蓉 [0] => 1 [key] => 1 ) echo "