Php 将循环与内部条件相乘

Php 将循环与内部条件相乘,php,for-loop,calendar,Php,For Loop,Calendar,我正在构建一个基于“层”的每周日历应用程序。此日历是一个基于日时的矩阵,以$calendar变量表示为数组: hour |Monday | Tuesday | Wednesday ... 12am 01am 02am ... 如果要将假日应用于日历,我会: $holidays = getHolidays(); for( $day = 0; $i < count($calendar)); $day ++) { for( $hour = 0; $i < count($calen

我正在构建一个基于“层”的每周日历应用程序。此日历是一个基于日时的矩阵,以$calendar变量表示为数组:

hour |Monday | Tuesday | Wednesday ...
12am
01am
02am
...
如果要将假日应用于日历,我会:

$holidays = getHolidays();
for( $day = 0; $i < count($calendar)); $day ++)
{
    for( $hour = 0; $i < count($calendar[$day])); $hour ++)
    {
        if ( exists_in_array( $calendar[$day][$hour] ,  $holidays ) )
        {
            $calendar[$day][$hour] = "holiday";
        }
    }
}
$holidays=getHolidays();
对于($day=0;$i
现在,如果我想申请设置特殊事件,我会:

$specialDates = getSpecialDates();

for( $day = 0; $i < count($calendar)); $day ++)
{
    for( $hour = 0; $i < count($calendar[$day])); $hour ++)
    {
        if ( exists_in_array( $calendar[$day][$hour] ,  $specialDates  ) )
        {
            $calendar[$day][$hour] = "special";
        }
    }
}
$specialDates=getSpecialDates();
对于($day=0;$i
目前,我非常担心,因为有一个循环来迭代日历以应用新的层可能会使应用程序越来越慢


那么,在我的日历中添加不同的信息是一种好的做法吗

为什么不使用同一组循环,而不是多次循环

$specialDates = getSpecialDates();
$holidays = getHolidays();
for( $day = 0; $i < count($calendar)); $day ++)
{
    for( $hour = 0; $i < count($calendar[$day])); $hour ++)
    {
        if ( exists_in_array( $calendar[$day][$hour] ,  $specialDates  ) )
        {
            $calendar[$day][$hour] = "special";
        }
        if ( exists_in_array( $calendar[$day][$hour] ,  $holidays ) )
        {
            $calendar[$day][$hour] = "holiday";
        }
    }
}
$specialDates=getSpecialDates();
$holidays=getHolidays();
对于($day=0;$i
嗯,我的问题是循环和条件的数量。我的意思是,假设我有100层和50个条件。我应该只有一个循环,里面有60个条件,还是有100个厕所,里面有一个条件?就我个人而言,如果我要一遍又一遍地循环相同的信息,我试着只运行一次循环。另外,仅供参考,您不应该在for循环中放入类似count($calendar[$day])的操作,您应该真正移动它,否则每次循环时它都会重新计数。