1、each — 返回数组中当前的键/值对并将数组指针向前移动一步
each的返回值:
返回 array 数组中当前指针位置的键/值对并向前移动数组指针。键值对被返回为四个单元的数组,键名为>,key 和 value。单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据。
示例:
$colorArr = array("a"=>"red","b"=>"yellow","c"=>"blue");
var_dump(each($colorArr));
输出结果:
array(4) { [1]=> string(3) "red" ["value"]=> string(3) "red" [0]=> string(1) "a" ["key"]=> string(1) "a" }
2、list — 把数组中的值赋给一些变量。list() 用一步操作给一组变量进行赋值,返回值为一个数组。
示例:
$testArr = array("张","王");
$newArr = list($key,$val) = $testArr;
echo "<pre>";
var_dump($newArr);
echo "</pre>";
输出结果:
array(2) {
[0]=>
string(3) "张"
[1]=>
string(3) "王"
}
3、each() 和 list() 结合使用
示例:
$colorArr = array("a"=>"red","b"=>"yellow","c"=>"blue");
$keyStr = "";
$valStr = "";
while(list($key,$val)=each($colorArr)){
$keyStr .= "$key \t";
$valStr .= "$val \t";
}
echo "$keyStr <br /> $valStr";
a b c
red yellow blue
4、问题来了:为什么可以将四个值赋给两个变量呢?
这里涉及到了一个小知识点:list() 仅能用于数字索引的数组并假定数字索引从 0 开始。 所以在它们组合使用的时候,会自动过滤掉each产生的数组中的非数字键名的单元。