【发布时间】:2016-04-22 01:31:47
【问题描述】:
我有一个 foreach 在数组中的项目之间迭代以构建一个 excel 文件。
如果数组中的下一个元素匹配特定条件(在一个键中具有特定值),我想在数组中的每个项目之后放置一个总行。
因此,我想使用next() 来检查该值,但据我所知,对于我使用 next 读取的 here,我会将指针移至下一行,答案是使用 current。如何在不移动指针的情况下查看数组中的下一项?阅读那个问题我写了这个:
foreach($creds as $cred){
echo $cred['tipo'];
//if the next item has a 'tipo' key with a specific value
if(current($creds['tipo'])!='4'){
echo 'Total';
}
}
但这不起作用。如何解决?
编辑:根据答案,我将在下一次迭代开始时而不是在当前迭代的底部移动 echo 'Total' 内容。就我在答案中看到的而言,没有其他使用 foreach 的解决方案
【问题讨论】:
-
不确定,但
=='4'正在寻找一个字符串,而不是一个可能的整数==4。 -
for($x = 0; $x
-
@Fred-ii- 实际上真正的代码正在寻找一个字符串(一些字母)。
-
si Lelio,感恩!钢琴...非速度马“不太破旧”;-)
-
没有什么可以阻止您使用单独的数组迭代器,您可以在
foreach循环中以任何您希望的方式使用它。在foreach loop之外做:$iter = new \ArrayIterator($cred)。在循环内部,确保 foreach 循环和$iter留在步骤中,即在循环结束时执行next()。它有用的地方是你可以在 $iter 上随心所欲地做next()和prev()。foreach不会知道或关心。