在PHP中从循环中断并继续
我试图创建一个简单的foreach循环。但是,在3刚刚完成之后,我只需要运行一个惟一语句,只运行一次。然后继续我刚才讲到的地方。这是我的循环:在PHP中从循环中断并继续,php,Php,我试图创建一个简单的foreach循环。但是,在3刚刚完成之后,我只需要运行一个惟一语句,只运行一次。然后继续我刚才讲到的地方。这是我的循环: $foo = array(1,2,3,4,5); $i; foreach($foo as $bar): $i++; echo $bar; endforeach; 但是,我不确定如何说: if $i == 4 >> interject unique code continue loop 在这种情况下,正常的if语句应该适用于您:
$foo = array(1,2,3,4,5);
$i;
foreach($foo as $bar):
$i++;
echo $bar;
endforeach;
但是,我不确定如何说:
if $i == 4
>> interject unique code
continue loop
在这种情况下,正常的if语句应该适用于您:
$i = 0;
foreach ($foo as $bar) {
echo $bar;
if ($i++ == 4) {
// do unique code
}
}
当$i为4时,这将只执行一次,除非您在循环中明确地将$i设置在$i++之外的某个位置。您将使用一个简单的if语句
foreach($foo as $bar):
$i++;
if($i==4) {
// run unique statement
}
echo $bar;
endforeach;
使用这里的$i变量
$foo = array(1,2,3,4,5);
$i;
foreach($foo as $bar):
echo $bar;
if ($i++ == 4)
{
// 1-off code goes here
}
endforeach;
试用
$foo = array(1,2,3,4,5);
$i = 0;
foreach($foo as $bar):
$i++;
if($i=='4'){
//interject unique code
continue;
}
echo $bar;
endforeach;
当$i达到4时,将只执行continue之前if块中的代码,循环将继续执行下一个值。只需在foreach中放置一个if语句,它将仅在第三个循环后使用
$foo = array(1,2,3,4,5);
// Your array key will give you your iteration number
foreach($foo as $key => $val):
{
echo $bar;
if $key == 3
{
echo "I'm in the fourth iteration";
//Or any other code
}
}
foreach$foo作为$key=>$bar:然后您可以检查$key==3…您能详细说明一下吗?我还是一个初学者:@JonathanKuhn,如果数组的形式是数组'a'=>1,'carl'=>2,14=>79;,那么检查$key是无效的@tymie,已经发布了几个答案,显示了正确的实现。然而,@JonathanKuhn使用的符号在许多情况下都非常有用。您可能想快速查看一下手册:@MjrKusanagi:是的,如果数组不是数字或没有3键,那么它将无法工作。然而,给定OPs示例数组,这将很好地工作。我只是展示了另一种完成任务的方法。谢谢,如果删除continue,会发生什么?在这种情况下,整个循环都将执行。当条件满足时,只执行if块之间的代码..检查字符串和整数之间的相等性不是好的做法,尤其是用这种方式。为什么不改用if$i==4{……我也在想,我希望那个人至少能在评论中表达自己的不满。