Maison > Article > développement back-end > Méthodes de traversée de tableaux PHP et comparaison de l'efficacité
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 />"; } ?>. 🎜>Testons la vitesse de plusieurs parcours de tableauxGénéralement, il existe trois méthodes pour parcourir un tableau, for, while et foreach. Le plus simple et le plus pratique d'entre eux est foreach. Testons d'abord le temps nécessaire pour parcourir un tableau unidimensionnel de 50 000 indices.
<?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 />'; ?>Résultats des tests :
Used time of for:0.0228429(s) Used time of while:0.0544658(s) Used time of foreach:0.0085628(s)Après des tests répétés, les résultats montrent que pour parcourir le même tableau, foreach est le plus rapide et le plus lent est while. En principe, foreach opère sur une copie du tableau (en copiant le tableau), tandis que while opère en déplaçant l'index interne du tableau. De manière générale, on pense que while devrait être plus rapide que foreach (car foreach déplace d'abord le tableau. quand il commence à s'exécuter, tandis que while déplace le pointeur interne directement), mais le résultat est tout le contraire. La raison devrait être que foreach est une implémentation interne de PHP, tandis que while est une structure de boucle générale. Par conséquent, dans les applications générales, foreach est simple et efficace. Sous PHP5, foreach peut également parcourir les attributs d'une classe. J'espère que cet article sera utile à tout le monde.