求大牛详解each函数

php 的each函数看不懂,求大神解答。

<?php 
$people = array("a", "B", "C", "D");
print_r($people);
echo "<hr>";
print_r (each($people));
echo "<hr>";
print_r (each($people));
echo "<hr>";
print_r (each($people));
echo "<hr>";
print_r (each($people));
?>

最终结果如下
Array ( [0] => a [1] => B [2] => C [3] => D )
Array ( [1] => a [value] => a [0] => 0 [key] => 0 )
Array ( [1] => B [value] => B [0] => 1 [key] => 1 )
Array ( [1] => C [value] => C [0] => 2 [key] => 2 )
为什么会有个value出现,还有key?
我觉得自己没有看懂规则,所以求大神指导一下,本人小白。谢谢了 拜托

Smart猫小萌
浏览 508回答 3
3回答

呼唤远方

each在php7.2已经被废弃,可以不用太关心。 each() 返回的是某个元素的key和value,并把指针指向下一个元素。 Array ( [1] => a [value] => a [0] => 0 [key] => 0 ) 下标0和下标key其实都是数组当前指针对应的元素的key,因为你提供的数组,key是隐式的,所以会从0开头。比如我们提供一个显式的key $arr = ['hello' => 'world', 'hi' => '原罪']; print_r(each($arr)); print_r(each($arr)); 答案是: Array ( [1] => world [value] => world [0] => hello [key] => hello ) Array ( [1] => 原罪 [value] => 原罪 [0] => hi [key] => hi ) 证明0和key的下标都是值原数组的key,而1和value都是指原数组的value。第二个print_r证明each()执行后会把指针往后移动。 所以一般有这种用法 $arr = ['a', 'b', 'c']; while (list($key, $value) = each($arr)) { $arr[$key] = $value . '_i'; } print_r($arr); // ['a_i', 'b_i', 'c_i']; 这段代码从我的文章复制的遍历PHP数组的6种方式

炎炎设计

function.each

梦里花落0921

php执行 each() 之后,数组指针将停留在数组中的下一个单元或者当碰到数组结尾时停留在最后一个单元。并且会返回为四个单元的数组,键名为0,1,key和 value。单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据。
打开App,查看更多内容
随时随地看视频慕课网APP