PHP each() list() 的作用与遍历数组

each()在一篇文章看到的时候第一反应:有点印象,但具体是干什么的已经记不起来了,查了手册之后:

返回数组中当前的键/值对并将数组指针向前移动一步

next的区别估计就在于是否返回值了,一个是键值对,一个是值,并且next()中有一句话:

Note: 你将无法区别包含数组尾以及 boolean FALSE 单元的数组。要正确遍历可能含有空单元或者单元值为 0 的数组,参见 each() 函数。

看来next()有一定限制条件。

在执行 each() 之后,数组指针将停留在数组中的下一个单元或者当碰到数组结尾时停留在最后一个单元。如果要再用 each 遍历数组,必须使用 reset()

list()连用就能遍历数组了。

$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');

reset($fruit);
while (list($key, $val) = each($fruit)) {
    echo "$key => $val\n";
}

list的用法是:
例如:

$info = array('coffee', 'brown', 'caffeine');

// 列出所有变量
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.\n";

元素必须是对应个数,不能少,这里之所以正好两个的原因是因为List()只能处理数字索引的数组,键值则会被无视。

list() 仅能用于数字索引的数组并假定数字索引从 0 开始。

扩展阅读:
each()http://www.php.net/manual/zh/function.each.php
list()http://www.php.net/manual/zh/function.list.php
next()http://www.php.net/manual/zh/function.next.php

前文提到的一篇文章是PHP程序员一般都忽略了的几点精华

植入部分

如果您觉得文章不错,可以通过赞助支持我。

如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。

标签: 知识, 代码段, 语法

添加新评论