答案 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.
}
}
}
}
}
}
}