Maison > développement back-end > tutoriel php > Méthodes de traversée de tableaux PHP et comparaison de l'efficacité

Méthodes de traversée de tableaux PHP et comparaison de l'efficacité

伊谢尔伦
Libérer: 2023-03-04 20:40:01
original
1327 Les gens l'ont consulté

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是后续语句
*/
Copier après la connexion

Exemple 1 :

<?php
 &#39;白色&#39; ,
  &#39;black&#39; => &#39;黑色&#39; ,
  &#39;red&#39; => &#39;红色&#39; ,
  &#39;green&#39; => &#39;绿色&#39;,
  &#39;yellow&#39; => &#39;黄色&#39;);
 foreach( $color as $c) echo $c ."
";    
?>
Copier après la connexion

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
Copier après la connexion

Changez le code de la ligne 7 dans l'exemple ci-dessus :

foreach( $color as $c) echo $c ."<br>";
Copier après la connexion

par :

foreach( $color as $key => $c) echo $key.$c ."<br>";
Copier après la connexion

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 /-->"; /* 显示数组 */
 }
?>
Copier après la connexion

while() est utilisé en conjonction avec list() et each() pour parcourir le tableau

Le format de syntaxe utilisé est le suivant :

<?php 
    $urls= array(&#39;aaa&#39;,&#39;bbb&#39;,&#39;ccc&#39;,&#39;ddd&#39;); 
    while(list($key,$val)= each($urls)) { 
      echo "This Site url is $val.<br />"; 
    } 
?>
Copier après la connexion
. 🎜>

Testons la vitesse de plusieurs parcours de tableaux

Gé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 &#39;Used time of for:&#39;.round($time_used, 7).&#39;(s)<br /><br />&#39;;
  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 &#39;Used time of while:&#39;.round($time_used, 7).&#39;(s)<br /><br />&#39;;
  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 &#39;Used time of foreach:&#39;.round($time_used, 7).&#39;(s)<br /><br />&#39;;
?>
Copier après la connexion

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)
Copier après la connexion

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.
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal