使用常规for循环,可以将当前索引与最后一个一起进行comapred,以判断我是否在循环的最后一次迭代中.使用foreach时是否有类似的事情?我的意思是这样的.
foreach($array as $item){
//do stuff
//then check if we're in the last iteration of the loop
$last_iteration = islast(); //boolean true/false
}
如果没有,至少有一种方法可以知道当前迭代的当前索引,如$iteration = 5,那么我可以手动将它与$array的长度进行比较吗?
解决方法:
您可以使用SPL的ArrayIterator和CachingIterator class的组合来获得hasNext
method:
$iter = new CachingIterator(new ArrayIterator($arr));
foreach ($iter as $value) {
$last_iteration = !$iter->hasNext();
}