Summary of several common methods of PHP array traversal

PHPz
Release: 2019-08-21 17:06:59
Original
1202 people have browsed it

Summary of several common methods of PHP array traversal

The examples in this article describe several common methods of PHP array traversal. Share it with everyone for your reference, as follows: (Places that need attention will be marked in red)

Recommended tutorials: php video tutorial

1. Use a for loop to traverse the array

<code><span style="font-size: 14px;">  conut($arr);</span> conut($arr);
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!

$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 loop traverses the array

foreach can traverse any type of array!

$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

Parsing multi-dimensional arrays
$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 add each value of the array, Assign a value 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

);
list($a,$b,$c)=[1,2,3];
//$a=1; $b=2; $c=3;
Copy after login

Note:

 ① list() in When parsing an array, only the index array is parsed;
 ② list can selectively parse the value of the array through empty parameters;

list($a,,$b)=[1,2,3];
//$a=1;  $b=3;
Copy after login

Key points:

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

Return value:

 If the pointer has Next bit, returns an array. Contains an index array (0-key, 1-value) and an associative array ("key"-key, "value"-value); if the pointer has no next digit, return false;

Principle:

each($arr)
Returns an array or false;
② Assign the array or false to $a;
③ while determine if $a is an array, continue to execute the next time;

If $a is false, terminate the loop

while($a = each($arr)){
 echo "{$a[0]}-->{$a[1]}<br>";
 echo "{$a[&#39;key&#39;]}-->{$a[&#39;value&#39;]}<br>";
}
Copy after login

Use list()/each()/while() to traverse the array

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

Array usage After each() has been traversed once, the pointer uses the next digit from the last digit; that is, if each() is used again, it always returns false;

reset($arr);If you still need to use it, you need to use the

function to reset it Array pointer;
$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>";
}
while(true){
  $a = each($arr);
 if($a){
  echo "{$a[0]}-->{$a[1]}
"; echo "{$a['key']}-->{$a['value']}
"; }else{ break; } } while(list($key,$value) = each($arr)){ echo "{$key}-->{$value}
"; } reset($arr); while(list($key,$value) = each($arr)){ echo "{$key}-->{$value}
"; }
Copy after login

4. Use array pointer to traverse the array

 ① next:
will Array pointer, shifted back one bit. And return the value of the next digit; if false is not returned  ② prev:
moves the array pointer forward 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 key where the current pointer is Value;

Method 1

$arr = [1,2,3,4,"one"=>5];
while(true){
  echo key($arr);
  echo "--";
  echo current($arr);
 echo "<br>";
 if(!next($arr)){
  break;
  }
}
reset($arr);
Copy after login

Method 2

do{
  echo key($arr);
  echo "--";
  echo current($arr);
 echo "<br>";
}while(next($arr));
reset($arr);
Copy after login

Related recommendations:

 Practical basic knowledge of PHP arrays

 Special topics on PHP arrays

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