Il existe de nombreuses façons de parcourir des tableaux Dans d'autres langages, les tableaux avec des indices consécutifs sont généralement parcourus en utilisant for, mais en fonction du tableau PHP spécial. , nous utilisons foreach, et parfois each.
Tout d'abord, jetons un coup d'œil aux tableaux dans la plupart des langages : $arr = array("a", "b", "c", "d", "e", " f", "g");
Jetons ensuite un oeil aux formes de tableaux qui peuvent exister en PHP : $arr2 = array("a", "b", 100= >"c", "d", "xxx"=>"e", "f", "g");
Oui, arr2 ne peut pas être effectué avec Traversal ~~Il existe donc une méthode foreach puissante~~
foreach a 2 expressions :
1 (tableau en tant que variable personnalisée)
2. foreach (tableau en tant que variable d'indice => variable de valeur)
list() attribue une valeur à un ensemble de variables en une seule opération. Notez que list ne peut convertir que des tableaux indexés consécutivement en variables.
Personnellement, je ne pense pas que la liste présente des avantages, sauf lorsqu'elle est utilisée avec la fonction d'explosion. éclater() explose une chaîne en un tableau.
Dans le code suivant, un exemple est démontré : list($name, $web) = éclater("_",$str);
each() renvoie le nom de la clé et la valeur de la clé de l'élément actuel et déplace le pointeur interne vers l'avant.
current() - Renvoie la valeur de l'élément actuel dans le tableau.
end() - Définit le pointeur interne vers le dernier élément du tableau et le génère.
next() - Définit le pointeur interne vers l'élément suivant du tableau et le génère.
prev() - pointe le pointeur interne vers l'élément précédent du tableau et le génère.
reset() - Définit le pointeur interne sur le premier élément du tableau et le génère.
Utilisé avec while, vous pouvez parcourir le tableau : while ($tmp = each($arr)){ print_r($tmp); echo '
'; 🎜>
<?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 "