限制for循环

时间:2019-04-17 15:03:21

标签: php for-loop

所以我的一段代码有一个小问题,我有一个向程序添加检查点的系统,我希望它每14分钟添加一个检查点,但我也想将其限制为仅根据课程多少小时添加x个检查点数量。例如,第一门课程有12个小时,所以我只想创建12个检查点,但是它基于$ time_in_secs创建16个检查点,因此该变量在检查程序开始和结束日期之间的时间将始终不同。对于第二个程序,它有24小时,但是它创建了33个检查点,依此类推。 $ checkpoint_limit是我要限制for循环的范围,但是我仍然需要将其添加840,因为这是秒数的时间,并且我需要每14分钟创建一个检查点

我做了一些不同的事情,但似乎没有一个起作用。尝试设置min()也尝试执行if,但似乎也不起作用。

$checkpoint_limit = (abs($numHours) * 3);
//840 = 14 minute interval * 60
for ($i = 840; $i < $time_in_secs; $i += 840) {
//Code here that adds the checkpoints
}

2 个答案:

答案 0 :(得分:0)

在&&运算符的循环中使用第二个条件。例如;

$j=0
for($i=840;$i<$timeInSecs && $j<12;$i +=840)
{
 //example code here
$j++
}

很抱歉我使用的是SO mobile且回答的质量很差,所以j变量就像一个检查点时间。您添加了14分钟的检查点,我得到的是您希望它循环对于特定的计数,您可以通过这种方式来实现。并且应该在for循环的末尾增加$ j。

答案 1 :(得分:0)

在for循环中,检查是否创建了检查点,如果检查点超过$ checkpoint_limit,则中断循环。

尝试:

$checkpoint_limit = (abs($numHours) * 3);
$no_of_checkpoints = 0;
//840 = 14 minute interval * 60
for ($i = 840; $i < $time_in_secs; $i += 840) {
    //Code here that adds the checkpoints
    $no_of_checkpoints++;
    if($no_of_checkpoints > $checkpoint_limit){
         break;
    }
}