问题很简单.foreach我的代码中有一个循环:
foreach($array as $element) {
//code
}
Run Code Online (Sandbox Code Playgroud)
在这个循环中,我想在第一次或最后一次迭代时做出不同的反应.
这该怎么做?
我正在使用一些参数编写SQL查询创建器.在Java中,只需使用数组长度检查当前数组位置,就可以非常轻松地从for循环内部检测数组的最后一个元素.
for(int i=0; i< arr.length;i++){
boolean isLastElem = i== (arr.length -1) ? true : false;
}
Run Code Online (Sandbox Code Playgroud)
在PHP中,它们具有非整数索引来访问数组.因此,您必须使用foreach循环遍历数组.当你需要做出一些决定时(在我的情况下,在构建查询时附加或/和参数),这就成了问题.
我相信必须有一些标准的方法来做到这一点.
你是如何在PHP中解决这个问题的?
使用常规的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
}
Run Code Online (Sandbox Code Playgroud)
如果没有,至少有一种方法可以知道当前迭代的当前索引$iteration = 5,所以我可以手动将它与长度相比较$array?