Maison  >  Article  >  développement back-end  >  Résumé de plusieurs utilisations des tableaux traversants php

Résumé de plusieurs utilisations des tableaux traversants php

伊谢尔伦
伊谢尔伦original
2017-07-08 11:37:56992parcourir

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

Aujourd'hui, une amie m'a posé une question sur les méthodes phptraversing array, 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 la méthode la plus simple et la plus efficace pour parcourir des données dans un tableau.

<?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 d'un tableau est la plus rapide. Faisons un test simple et vous comprendrez
======== =. == Testons 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 qu'il faut pour parcourir un tableau unidimensionnel avec 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.

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