Home  >  Article  >  Backend Development  >  Briefly describe the method of traversing an array in PHP

Briefly describe the method of traversing an array in PHP

墨辰丷
墨辰丷Original
2018-06-11 11:28:552111browse

The most flexible things under PHP are arrays. Many data are displayed in arrays. Here are the array traversal methods, which you can choose according to your needs.

Today a friend asked me a question about how to traverse arrays in php, and I told her a few. By the way, write an article to summarize. If the summary is not complete, please point it out

First, foreach()

foreach() is a method used to traverse the data in an array. The simplest and most effective method.

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

Display results:

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

Second, while() is used in conjunction with list() and 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 />"; 
    } 
?>

Display the result:

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

Third, for() uses for to traverse the array

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

Display the result:

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

Sometimes some people ask which of these methods of traversing an array is faster. Let’s do a simple test to understand.
=========== Let’s test three methods: Speed ​​of traversing arrays ===========
Generally, there are three methods for traversing an array, for, while, and foreach. The simplest and most convenient of them is foreach. Let's first test the time it takes to traverse a one-dimensional array with 50,000 subscripts.

<?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;; 
  ?>

Test results:

Used time of for:0.0228429(s) 
Used time of while:0.0544658(s) 
Used time of foreach:0.0085628(s)

After repeated tests, the results show that for traversing the same array, foreach is the fastest and the slowest is while. In principle, foreach operates on a copy of the array (by copying the array), while while operates by moving the internal index of the array. Generally speaking, it is believed that while should be faster than foreach (because foreach first moves the array when it starts to execute. Copy it in, and while directly moves the internal indicator.), but the result is just the opposite. The reason should be that foreach is an internal implementation of PHP, while while is a general loop structure. Therefore, in general applications, foreach is simple and efficient. Under PHP5, foreach can also traverse the attributes of a class.

Summary: The above is the entire content of this article, I hope it will be helpful to everyone's study.

Related recommendations:

Common PHP exception handling methods

Two methods of PHP array fusion

PHP WeChat interface implements QR code generation class

The above is the detailed content of Briefly describe the method of traversing an array in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:PHP's native paging codeNext article:PHP's native paging code