时间:2010-07-25 19:31:06

标签: php arrays multidimensional-array

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

答案 2 :(得分:0)

此解决方案的一些优化:

$earliest_date  = strtotime('next Monday'); // or whatever.

$earliest_year  = date('Y', $earliest_date); 

$earliest_month = (int)date('m', $earliest_date); //(int) for leading zero remove

$earliest_day   = date('j', $earliest_date); $new_events = array();

foreach($array as $year => $a) {
    if ($year>=$earliest_year) {
        foreach($array[$year] as $month => $b {
            if ($month>=$earliest_month) {
                foreach($array[$year][$month] as $day => $events) {
                    $date = strtotime("$year-$month-$day");
                    if($date >= $earliest_date) {
                        $new_events[] = array( 'date' => $date, 'events' => $events );
                        if(count($new_events) >= 5) {
                            break 3; // Breaks out of all three loops.
                        }
                    }
                }
            }
        }
    }
}