Cet article présente principalement list(), each() et while résumé de plusieurs méthodes de bouclage dans des tableaux en PHP. L'objectif de cet article est d'expliquer l'utilisation de ces méthodes et les comparaisons d'efficacité associées pour ceux qui en ont besoin. Les amis peuvent s'y référer.
foreach parcourt le tableau
Lorsque nous utilisons un tableau, nous devons souvent parcourir le tableau et obtenir chaque clé ou valeur d'élément. PHP fournit certaines fonctions qui traversent spécifiquement le tableau. Ici, nous introduisons d’abord l’utilisation de la fonction de parcours de tableau foreach.
Forme structurelle :
foreach ( array_expression as $value ) statement /* array_expression是要遍历的数组 as作用是将数组的值赋给$value statement是后续语句 */
Exemple 1 :
<?php '白色' , 'black' => '黑色' , 'red' => '红色' , 'green' => '绿色', 'yellow' => '黄色'); foreach( $color as $c) echo $c ." "; ?>
Non seulement la valeur de l'élément mais également le nom de la clé peuvent être obtenus via foreach , la forme structurelle :
foreach ( array_expression as $key => $value ) statement
Changez le code de la ligne 7 dans l'exemple ci-dessus :
foreach( $color as $c) echo $c ."<br>";
par :
foreach( $color as $key => $c) echo $key.$c ."<br>";
for traverse le tableau
En plus de certaines fonctions de parcours de tableau prédéfinies en PHP, nous pouvons également utiliser la fonction de boucle de l'instruction for pour parcourir le tableau et sortez-le. Un exemple est donné ci-dessous :
<?php $a[]="张学友"; /* 定义数组 */ $a[]="刘德华"; $a[]="黎明"; $a[]="郭富城"; $s=count($a); /* 统计数组个数 */ for($i=0;$i<$s;$i++){ /* 遍历数组 */ echo $a[$i] ."<br /-->"; /* 显示数组 */ } ?>
while() est utilisé en conjonction avec list() et each() pour parcourir le tableau
Le format de syntaxe utilisé est le suivant :
<?php $urls= array('aaa','bbb','ccc','ddd'); while(list($key,$val)= each($urls)) { echo "This Site url is $val.<br />"; } ?>
<?php $arr= array(); for($i= 0; $i< 50000; $i++){ $arr[]= $i*rand(1000,9999); } function GetRunTime() { list($usec,$sec)=explode(" ",microtime()); return ((float)$usec+(float)$sec); } ###################################### $time_start= GetRunTime(); for($i= 0; $i< count($arr); $i++){ $str= $arr[$i]; } $time_end= GetRunTime(); $time_used= $time_end- $time_start; echo 'Used time of for:'.round($time_used, 7).'(s)<br /><br />'; unset($str, $time_start, $time_end, $time_used); ###################################### $time_start= GetRunTime(); while(list($key, $val)= each($arr)){ $str= $val; } $time_end= GetRunTime(); $time_used= $time_end- $time_start; echo 'Used time of while:'.round($time_used, 7).'(s)<br /><br />'; unset($str, $key, $val, $time_start, $time_end, $time_used); ###################################### $time_start= GetRunTime(); foreach($arr as$key=> $val){ $str= $val; } $time_end= GetRunTime(); $time_used= $time_end- $time_start; echo 'Used time of foreach:'.round($time_used, 7).'(s)<br /><br />'; ?>
Used time of for:0.0228429(s) Used time of while:0.0544658(s) Used time of foreach:0.0085628(s)