Home Backend Development PHP Tutorial Summary of several common methods of PHP array traversal

Summary of several common methods of PHP array traversal

Jul 21, 2016 pm 03:36 PM
php array

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 &quot;数组元素的个数{$num}&lt;br/&gt;&quot;;
for($i=0;$i&lt;$num;$i++){
 echo &quot;{$i}==&gt;{$arr[$i]}&lt;br/&gt;&quot;;
}
Copy after login

2. forEach loop traverses the array

foreach can traverse any type of array!

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

Parsing multi-dimensional arrays
$h51701 = array(
 &quot;group1&quot;=&gt;array(
  array(&quot;name&quot;=&gt;&quot;张三&quot;,&quot;age&quot;=&gt;14,&quot;sex&quot;=&gt;&quot;男&quot;),
  array(&quot;name&quot;=&gt;&quot;张三&quot;,&quot;age&quot;=&gt;14,&quot;sex&quot;=&gt;&quot;男&quot;),
  array(&quot;name&quot;=&gt;&quot;张三&quot;,&quot;age&quot;=&gt;14,&quot;sex&quot;=&gt;&quot;男&quot;)
 ),
 &quot;group2&quot;=&gt;array(
  array(&quot;name&quot;=&gt;&quot;张三&quot;,&quot;age&quot;=&gt;14,&quot;sex&quot;=&gt;&quot;男&quot;),
  array(&quot;name&quot;=&gt;&quot;张三&quot;,&quot;age&quot;=&gt;14,&quot;sex&quot;=&gt;&quot;男&quot;),
  array(&quot;name&quot;=&gt;&quot;张三&quot;,&quot;age&quot;=&gt;14,&quot;sex&quot;=&gt;&quot;男&quot;)
 ),
 &quot;group3&quot;=&gt;array(
  array(&quot;name&quot;=&gt;&quot;张三&quot;,&quot;age&quot;=&gt;14,&quot;sex&quot;=&gt;&quot;男&quot;),
  array(&quot;name&quot;=&gt;&quot;张三&quot;,&quot;age&quot;=&gt;14,&quot;sex&quot;=&gt;&quot;男&quot;),
  array(&quot;name&quot;=&gt;&quot;张三&quot;,&quot;age&quot;=&gt;14,&quot;sex&quot;=&gt;&quot;男&quot;)
 )
);
foreach ($h51701 as $key =&gt; $value) {
 echo &quot;{$key}&lt;br&gt;&lt;br&gt;&quot;;
 foreach ($value as $key1 =&gt; $value1) {
  echo &quot;第&quot;.($key1+1).&quot;个同学&lt;br&gt;&quot;;
  foreach ($value1 as $key2 =&gt; $value2) {
  echo &quot;{$key2}==&gt;{$value2}&lt;br&gt;&quot;;
  }
  echo &quot;&lt;br&gt;&quot;;
 }
 echo &quot;------------------------&lt;br&gt;&quot;;
}
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 &quot;{$a[0]}--&gt;{$a[1]}&lt;br&gt;&quot;;
 echo &quot;{$a[&#39;key&#39;]}--&gt;{$a[&#39;value&#39;]}&lt;br&gt;&quot;;
}
Copy after login

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

while(list($key,$value) = each($arr)){
  echo &quot;{$key}--&gt;{$value}&lt;br&gt;&quot;;
}
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,&quot;one&quot;=&gt;4,5,6,7);
foreach($arr as $value){
 echo &quot;{$item}&lt;br&gt;&quot;;
}
foreach($arr as $key =&gt; $value){
 echo &quot;{$key}==&gt;{$item}&lt;br&gt;&quot;;
}
while(true){
  $a = each($arr);
 if($a){
  echo "{$a[0]}-->{$a[1]}<br>";
  echo "{$a['key']}-->{$a['value']}<br>";
 }else{
  break;
 }
}
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 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,&quot;one&quot;=&gt;5];
while(true){
  echo key($arr);
  echo &quot;--&quot;;
  echo current($arr);
 echo &quot;&lt;br&gt;&quot;;
 if(!next($arr)){
  break;
  }
}
reset($arr);
Copy after login

Method 2

do{
  echo key($arr);
  echo &quot;--&quot;;
  echo current($arr);
 echo &quot;&lt;br&gt;&quot;;
}while(next($arr));
reset($arr);
Copy after login

Related recommendations:

 Practical basic knowledge of PHP arrays

 Special topics on PHP arrays

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

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian

CakePHP Project Configuration CakePHP Project Configuration Sep 10, 2024 pm 05:25 PM

CakePHP Project Configuration

CakePHP Date and Time CakePHP Date and Time Sep 10, 2024 pm 05:27 PM

CakePHP Date and Time

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

CakePHP File upload

CakePHP Routing CakePHP Routing Sep 10, 2024 pm 05:25 PM

CakePHP Routing

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

Discuss CakePHP

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

How To Set Up Visual Studio Code (VS Code) for PHP Development

CakePHP Quick Guide CakePHP Quick Guide Sep 10, 2024 pm 05:27 PM

CakePHP Quick Guide

See all articles