This article analyzes the usage of each and list in PHP with examples. Share it with everyone for your reference, the details are as follows:
1.Usage of each
Look at the API first
array each ( array &$array )
This is described in the API: each — returns the current key/value pair in the array and moves the array pointer forward one step
Let’s first take a look at what the returned array looks like?
<?php $arr = array('你','若','安','好','便','是','晴','天'); print_r(each($arr)); print_r(each($arr)); echo '<hr />'; /* 返回 Array ( [1] => 你 [value] => 你 [0] => 0 [key] => 0 ) Array ( [1] => 若 [value] => 若 [0] => 1 [key] => 1 ) */ //执行相同的一段代码,从‘你'到‘若',说明each是会每执行一次,游标向数组尾部移动一步 //0和Key存放的是键 //1和value存放的是值 //因此each满足遍历数组的,得到当前的键和值,以及每执行一次,向尾部移动一步游标 //因此循环数组也可以用each这么写 reset($arr); for(;$tmp=each($arr);){ echo $tmp[0],'~',$tmp[1],'<br />'; } /* 返回 0~你 1~若 2~安 3~好 4~便 5~是 6~晴 7~天 */ ?>
2.list usage
Let’s see what the API says first
Like array(), this is not a real function, but a language construct. list() assigns values to a set of variables in one step.
Let’s look at an example:
<?php list($a,$b)=array(10,20); echo $a,'~',$b,'<br />'; //返回10~20 ?>
Yes, you can assign values to a set of variables
Let’s look at another example:
<?php list($a,$b,,$c)=array(2=>10,3=>20,4=>30,1=>40); echo $a,'~',$b,'~',$c,'<br />'; //返回notice~40~20 //执行到$a的时候返回给我一个notice:说数组没有0键 ?>
According to the general idea, it should return: 10~20~40
Why is this notice~40~20 returned?
Answer: This involves the operating mechanism of the list. This is how the list is assigned
First of all: ignore the array on the right and look at the variables in the List. From left to right it should be $a = arr[0] $b=arr[1] $c=arr[3]
Then: start assigning values from right to left, the order of assignment is $c=arr[3] $b=arr[1] $a=arr[0]
So $c=20 $b = 40 Because there is no arr[0], $a gives a warning
3. Use each and list to implement array traversal
<?php $arr = array('你','若','安','好','便','是','晴','天'); for(;list($k,$v)=each($arr);){ echo $k,'~',$v,'<br />'; } /* return: 0~你 1~若 2~安 3~好 4~便 5~是 6~晴 7~天 */ ?>
I hope this article will be helpful to everyone in PHP programming.