Home > Backend Development > PHP Problem > What are the several ways to loop through arrays in php

What are the several ways to loop through arrays in php

青灯夜游
Release: 2023-03-14 08:02:01
Original
4781 people have browsed it

Loop method: 1. Use the for statement to traverse the array; 2. Use the foreach() statement to traverse the array; 3. Use the while statement with the list() and each() functions to traverse the array; 4. Use the while statement Use key(), current(), next() and other pointer functions to traverse the array.

What are the several ways to loop through arrays in php

The operating environment of this tutorial: windows7 system, PHP7.1 version, DELL G3 computer

Four ways of array loop traversal

1. Use a for loop to traverse the array

conut($arr); is used to count the number of array elements.

The for loop can only be used to traverse, pure index arrays! ! ! !

If there is an associative array, the total number of the two arrays will be counted during count statistics, and a for loop will be used to traverse the mixed array, causing the array to go out of bounds! !

eg:

$arr = array(1,2,3,5,6,7);
$num = count($arr);        //count最好放到for外面,可以让函数只执行一次
echo "数组元素的个数{$num}<br/>";
for($i=0;$i<$num;$i++){
  echo "{$i}==>{$arr[$i]}<br/>";
 }
Copy after login

2. forEach loops through arrays

foreach can traverse any type of array! ! !
eg:

$arr = array(1,2,3,"one"=>4,5,6,7);
foreach($arr as $value){
  echo "{$item}<br>";
 }
 foreach($arr as $key => $value){
  echo "{$key}==>{$item}<br>";
 }
Copy after login

For example, parse the following array:

$h51701 = array(
  "group1"=>array(
   array("name"=>"张三","age"=>14,"sex"=>"男"),
   array("name"=>"张三","age"=>14,"sex"=>"男"),
   array("name"=>"张三","age"=>14,"sex"=>"男")
  ),
  "group2"=>array(
   array("name"=>"张三","age"=>14,"sex"=>"男"),
   array("name"=>"张三","age"=>14,"sex"=>"男"),
   array("name"=>"张三","age"=>14,"sex"=>"男")
  ),
  "group3"=>array(
   array("name"=>"张三","age"=>14,"sex"=>"男"),
   array("name"=>"张三","age"=>14,"sex"=>"男"),
   array("name"=>"张三","age"=>14,"sex"=>"男")
  )
 );
 foreach ($h51701 as $key => $value) {
  echo "{$key}<br><br>";
  foreach ($value as $key1 => $value1) {
   echo "第".($key1+1)."个同学<br>";
   foreach ($value1 as $key2 => $value2) {
    echo "{$key2}==>{$value2}<br>";
   }
   echo "<br>";
  }
  echo "------------------------<br>";
 }
Copy after login

3. Use list(), each(), while() to traverse the array

(Key points) list(): used to assign each value of the array to each parameter of the list function. (The parameters of the list function must be less than or equal to the number of elements in the array);

Note:

① When list() parses the array, it only parses the index array;

② list can selectively parse the value of the array through empty parameters;

(Key points) each(): used to return the key-value pair where the current pointer of the array is located! And move the pointer back one digit;

Return value: If the pointer has the next digit, return an array. Contains an index array (0-key, 1-value) and an associative array ("key"-key, "value"-value); if the pointer does not have the next digit, return false; ##

while(list($key,$value) = each($arr)){
 echo "{$key}-->{$value}<br>";  
}
reset($arr);
Copy after login

!!!!After the array is traversed using each(), the pointer is used the next bit after the last bit; that is, if each() is used again, false will always be returned;

If it is still To use, you need to use the reset($arr); function to reset the array pointer;

eg:

 $arr = array(1,2,3,"one"=>4,5,6,7);   
 foreach($arr as $value){
  echo "{$item}<br>";
 } foreach($arr as $key => $value){
  echo "{$key}==>{$item}<br>";
 }
Copy after login
 while(true){
   $a = each($arr);  if($a){
   echo "{$a[0]}-->{$a[1]}<br>";  
   echo "{$a[&#39;key&#39;]}-->{$a[&#39;value&#39;]}<br>";  
  }else{   break;
  }
}
Copy after login
 while(list($key,$value) = each($arr)){
  echo "{$key}-->{$value}<br>";  
  }
  reset($arr);  
  while(list($key,$value) = each($arr)){
  echo "{$key}-->{$value}<br>";  
  }
Copy after login

4. Use the array pointer to traverse the array

① next: Move the array pointer one position backward. And return the value of the next digit; if false

is not returned ② prev: Move the array pointer forward by one digit. And return the value of the previous digit; if false

is not returned ③ end: Move the array pointer to the last digit and return the value of the last digit; an empty array returns false

④ reset: Restore the array pointer to the first position. And returns the first value; an empty array returns false

⑤ key: Returns the key where the current pointer is;

⑥ current: Returns the value where the current pointer is;

$arr = [1,2,3,4,"one"=>5];
  while(true){
   echo key($arr);
   echo "--";
   echo current($arr);
  echo "<br>";
  if(!next($arr)){
   break;
   }
  }
  reset($arr);//第二种方式:
do{
   echo key($arr);
   echo "--";
   echo current($arr);
  echo "<br>";
  }while(next($arr));
  reset($arr);
Copy after login
Recommended learning: "

PHP Video Tutorial

"

The above is the detailed content of What are the several ways to loop through arrays in php. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template