我使用foreach循环遍历数组。
在特定情况下,我需要在迭代到达(如预测)元素之前知道下一个元素的值。为此,我计划使用函数next()。
在文档中我刚注意到next()使内部数组指针前进。
next()的行为类似于current(),但有一点不同。它推进了 内部数组指针在返回元素之前向前一个位置 值。这意味着它返回下一个数组值并前进 内部数组指针由一个。
如果是这样会影响我的foreach循环?
答案 0 :(得分:8)
它不会影响你的循环 如果以这种方式使用它
<?php
$lists = range('a', 'f');
foreach($lists as &$value) {
$next = current($lists);
echo 'value: ' . $value . "\n" . 'next: ' . $next . "\n\n";
}
<强>输出强>
价值:a 下一个:b
值:b 下一篇:c
值:c 下一篇:d
值:d 下一个:e
价值:e 下一篇:f
值:f 下一个:
答案 1 :(得分:0)
试试这段代码:
$a=$array();
foreach($a as $key=>$var)
{
if(isset($a[$key+1]))
echo $a[$key+1];//next element
}
答案 2 :(得分:0)
next()
不会影响foreach()
,期间。
至少在PHP 7.2中,
$values = ['a', 'b', 'c', 'd', 'e'];
foreach ($values as $value) {
next($values);
$two_ahead = next($values);
echo("Two ahead: $two_ahead\n");
echo("Current value: $value\n");
}
产生:
Two ahead: c
Current value: a
Two ahead: e
Current value: b
Two ahead:
Current value: c
Two ahead:
Current value: d
Two ahead:
Current value: e
还要注意,foreach循环也不影响next的位置。他们是独立的。
如果您的数组具有顺序数字键(默认),则ops' answer最适合您要执行的操作。我只是回答了这个问题。