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.
The operating environment of this tutorial: windows7 system, PHP7.1 version, DELL G3 computer
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/>"; }
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>"; }
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>"; }
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);
$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]}<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>"; }
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
$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);
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!