Maison  >  Article  >  développement back-end  >  Décrire brièvement la méthode de parcours d'un tableau en PHP

Décrire brièvement la méthode de parcours d'un tableau en PHP

墨辰丷
墨辰丷original
2018-06-11 11:28:552111parcourir

Les éléments les plus flexibles en PHP sont les tableaux. De nombreuses données sont affichées dans des tableaux. Voici les méthodes de parcours de tableaux, que vous pouvez choisir en fonction de vos besoins.

Aujourd'hui, une amie m'a posé une question sur la façon de parcourir des tableaux en php, et je lui en ai posé quelques-unes. D'ailleurs, j'écrirai un article pour résumer. Si le résumé n'est pas complet, veuillez le signaler

D'abord, foreach()

foreach(). est une méthode utilisée pour parcourir les données dans un tableau. La méthode la plus simple et la plus efficace.

<?php 
    $urls= array(&#39;aaa&#39;,&#39;bbb&#39;,&#39;ccc&#39;,&#39;ddd&#39;); 
    foreach ($urls as $url){ 
      echo "This Site url is $url! <br />"; 
    } 
?>

Afficher les résultats :

This Site url is aaa 
This Site url is bbb 
This Site url is ccc 
This Site url is ddd

Deuxièmement, while() est utilisé en conjonction avec list() et each().

<?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 />"; 
    } 
?>

Afficher le résultat :

This Site url is aaa 
This Site url is bbb 
This Site url is ccc 
This Site url is ddd

Troisièmement, for() utilise for pour parcourir le tableau

<?php 
    $urls= array(&#39;aaa&#39;,&#39;bbb&#39;,&#39;ccc&#39;,&#39;ddd&#39;); 
    for ($i= 0;$i< count($urls); $i++){ 
      $str= $urls[$i]; 
      echo "This Site url is $str.<br />"; 
    } 
?>

Afficher le résultat :

This Site url is aaa 
This Site url is bbb 
This Site url is ccc 
This Site url is ddd

Parfois, certaines personnes demandent également laquelle de ces méthodes de parcours de tableaux est la plus rapide. Faisons un test simple pour comprendre
======== === Faisons un test simple. tester les trois vitesses de parcours des 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;; 
  ?>

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. D'un point de vue 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 lorsqu'il commence à s'exécuter, tandis que while déplace directement le pointeur interne), 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.

Résumé : Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

Méthodes courantes de gestion des exceptions PHP

Deux méthodes de fusion de tableaux PHP

L'interface PHP WeChat implémente la classe de génération de code QR

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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