php中的foreach循环错过了最后一个" round"循环

时间:2016-05-03 16:44:49

标签: php arrays foreach

我有这个foreach循环:

foreach($courses as $course){ //$course is just course name
        $day = $dowMap[$course_day[$course]-1]; //$day = Sun/Mon...
        $date = date('Y-m-d', strtotime("next ".$day, strtotime(SEMESTER_START))); //first lectur in semester

        while (strtotime($date) <= strtotime(SEMESTER_END)) {
            if(!array_key_exists($course, $date_arr)){
                $date_arr[$course] = '';
                $date_arr[$course]++;
            }else{
                $date_arr[$course]++;
            }
            $date = date ("Y-m-d", strtotime("+7 day", strtotime($date)));
        }
    }

它实际上并不复杂,即时创建数组 - $date_arr,其中键是课程名称,值是学期开始和结束之间的日期数。 所以,如果在2016-01-01(学期开始)和2016-04-12(学期结束)之间有15个星期日,并且课程在星期日每周进行一次,那么阵列将包含这一部分:

["some_course"] => 15

一切正常,但最后一个课程的价值总是比它应该少1。 知道我在这个循环中缺少什么?或者更确切地说为什么在$courses数组中最后一次执行的最后一次执行丢失了? THX

0 个答案:

没有答案