php的数组都有一个内部指针,指向数组的元素,初始化的时候是第一个,我要便利数组,让内部指针逐个移动
$arr = array ('a', 'b', 'c', 'd', 'e');
foreach ($arr as $k => $v) {
$curr = current($arr);
echo "{$k} => {$v} -- {$curr}\n";
}
得到结果是
0 => a -- b
1 => b -- b
2 => c -- b
3 => d -- b
4 => e -- b
内部指针向后移动了一位就再也没动过了。。。
foreach对这个数组做了什么呢?为什么呢?
我要让指针遍历数组,得到如下结果改怎么做呢?
0 => a -- a
1 => b -- b
2 => c -- c
3 => d -- d
4 => e -- e
PHP 的数组指针操作函数:
pos() 、end() 、prev()、next() 、each() 、reset()、current()
foreach() 操作原始数组的一个拷贝,如果需要移动指针,使用 while 结构加上 each() 来实现。
$arr = array ('a', 'b', 'c', 'd', 'e');
reset($arr);
while (list($k, $v) = each($arr)) {
# 当前指针已经被指向了下一位
$curr = current($arr);
echo "{$k} => {$v} -- {$curr}\n";
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。