php for循环语法:如何施加多个条件

php for循环语法:如何施加多个条件,php,for-loop,syntax,Php,For Loop,Syntax,对于每日日历应用程序,我想打印一天中从早上九点到晚上八点的时间。我使用下面的语法,一直到12。但是,我想在1上重新开始编号,并使其继续编号为8。我知道用多个if-then表达式可以用一种更复杂的方式来实现,但我希望有一种干净的方式,用一个优雅的表达式来实现。这部分是因为其中有一个数据库查询,我只想写一次。以下是基本代码: PHP //following works up to 12 for($hourofday = 9; $hourofday <= 12; $hourofday++):

对于每日日历应用程序,我想打印一天中从早上九点到晚上八点的时间。我使用下面的语法,一直到12。但是,我想在1上重新开始编号,并使其继续编号为8。我知道用多个if-then表达式可以用一种更复杂的方式来实现,但我希望有一种干净的方式,用一个优雅的表达式来实现。这部分是因为其中有一个数据库查询,我只想写一次。以下是基本代码:

PHP
//following works up to 12
for($hourofday = 9; $hourofday <= 12; $hourofday++): 

//I want to do something like following but the following does not work.

//for($hourofday = 9; $hourofday <= 12 || $hourofday >=1 && $hourofday <=8); $hourofday++): 
    $output.= $hourofday.':00';
//This is where dbase is queried for events and there is formatting so it looks like a calendar

endfor
PHP
//后续工作至12个月

对于($hourofday=9;$hourofday而言,最好使用24小时模型在小时内循环,并使用减少到1-12范围,以便显示:

for ($hourofday = 9; $hourofday <= 20; $hourofday++): 
    $displayhour = $hourofday % 12 ?: 12;
    echo $displayhour.":00\n";
endfor;

对于($hourofday=9;$hourofday最好使用24小时模式循环几个小时,并使用将范围缩小到1-12,以便显示:

for ($hourofday = 9; $hourofday <= 20; $hourofday++): 
    $displayhour = $hourofday % 12 ?: 12;
    echo $displayhour.":00\n";
endfor;
对于($hourofday=9;$hourofday您可以执行以下操作:

for($hourofday=9; $hourofday <= 20; $hourofday++)
{
    if($hourofday > 12)
        $output .= $hourofday - 12 . ':00';
    else
        $output .= $hourofday . ':00';
}
for($hourofday=9;$hourofday 12)
$output.=$hourofday-12':00';
其他的
$output.=$hourofday':00';
}
或者更简短但更难阅读的方式:

for($hourofday=9; $hourofday <= 20; $hourofday++)
{
    $output .= ($hourofday - ($hourofday > 12 ? 12 : 0)) .':00 ';
}
for($hourofday=9;$hourofday 12-12:0)).:00';
}
您可以这样做:

for($hourofday=9; $hourofday <= 20; $hourofday++)
{
    if($hourofday > 12)
        $output .= $hourofday - 12 . ':00';
    else
        $output .= $hourofday . ':00';
}
for($hourofday=9;$hourofday 12)
$output.=$hourofday-12':00';
其他的
$output.=$hourofday':00';
}
或者更简短但更难阅读的方式:

for($hourofday=9; $hourofday <= 20; $hourofday++)
{
    $output .= ($hourofday - ($hourofday > 12 ? 12 : 0)) .':00 ';
}
for($hourofday=9;$hourofday 12-12:0)).:00';
}

我要上午9点到下午12点,然后是下午1点到8点

在这种情况下,您应该从9开始到20结束,并在输出时取12的模数


我要上午9点到下午12点,然后是下午1点到8点

在这种情况下,你应该从9开始,到20结束,输出时取12的模数。

这个呢

for($hourofday = 9; $hourofday <= 20; $hourofday++):
  $hr = ($hourofday > 12)?$hourofday-12:$hourofday;
  $output.= $hr.':00';
endfor
对于($houroday=9;$houroday 12)?$houroday-12:$houroday;
$output.=$hr':00';
外循环
这个怎么样

for($hourofday = 9; $hourofday <= 20; $hourofday++):
  $hr = ($hourofday > 12)?$hourofday-12:$hourofday;
  $output.= $hr.':00';
endfor
对于($houroday=9;$houroday 12)?$houroday-12:$houroday;
$output.=$hr':00';
外循环

它从9开始,因此它永远不会在1和8之间。是的。第一个术语应该是一次性的,例如$hourofday=0,并且在第二个术语中具有所有条件吗?为什么不从1开始,一直持续到8?我想要上午9点到下午12点,然后下午1点到晚上8点,所以我需要依次迭代这两个时间间隔。因此,它从9开始e它永远不会在1和8之间。是的。第一项应该是一次性的,比如$hourofday=0,并且在第二项中具有所有条件吗?为什么不从1开始,一直到8?我想要上午9点到下午12点,然后下午1点到晚上8点,所以我需要依次重复这两个时间间隔。如果他们想要12小时的时间间隔,这将中断或者更多。如果他们想要12小时或更长的时间间隔,这将中断。