php
list():
不是真正的函数,而是语言结构。list()函数仅能用于数字索引的数组,而且数字索引由0开始。
ex:
$array=array("asp","php","jsp");
list($a,$b)=$array;//"asp"和"php"赋值给了$a and $b
而且不能用于关联数组,若关联数组中也有数字索引,只数组里的数字索引的元素。
each():
返回数组中当前的键/值对并将数组指针向前移动一步
在执行 each() 之后,数组指针将停留在数组中的下一个单元或者当碰到数组结尾时停留在最后一个单元。
ex:
<?php
$people = array("Peter", "Joe", "Glenn", "Cleveland");
print_r (each($people));
?>
运行:
Array ( [1] => Peter [value] => Peter [0] => 0 [key] => 0 )
可以知道,再进行一次each()
就指向第二个Joe
键值对被返回为四个单元的数组,键名为0,1,key和 value。单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据。
其实就是第n次再用each()函数,会返回数组的第n个元素的键值对(被返回为四个单元的数组),如果内部指针越过了数组的末端,则 each() 返回 FALSE。
用list()和 each()实现foreach()
<?php
$people = array("Peter", "Joe", "Glenn", "Cleveland");
reset($people);
while (list($key, $val) = each($people))
{
echo "$key => $val<br>";
}
?>
运行结果:
0 => Peter
1 => Joe
2 => Glenn
3 => Cleveland