php – 在foreach中,isLastItem()存在吗?

使用常规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的长度进行比较吗?

解决方法:

您可以使用SPLArrayIteratorCachingIterator class的组合来获得hasNext method

$iter = new CachingIterator(new ArrayIterator($arr));
foreach ($iter as $value) {
    $last_iteration = !$iter->hasNext();
}

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...