private function itemizeMinutes($db_events, $itemized, $unit, $keyed_units)
{
$result = array();
if (isset($itemized[Event::BAT_MINUTE])) {
foreach ($itemized[Event::BAT_MINUTE] as $year => $months) {
foreach ($months as $month => $days) {
foreach ($days as $day => $hours) {
foreach ($hours as $hour => $minutes) {
foreach ($minutes as $minute => $value) {
if (isset($db_events[$unit][Event::BAT_MINUTE][$year][$month][$day][$hour][$minute])) {
$result[$year][$month][$day][$hour][$minute] = (int) $db_events[$unit][Event::BAT_MINUTE][$year][$month][$day][$hour][$minute] == 0 ? $keyed_units[$unit]->getDefaultValue() : (int) $db_events[$unit][Event::BAT_MINUTE][$year][$month][$day][$hour][$minute];
} else {
// If nothing from db - then revert to the defaults
$result[$year][$month][$day][$hour][$minute] = (int) $keyed_units[$unit]->getDefaultValue();
}
}
}
}
}
}
}
// Now fill in minute data coming from the database which the mock event did *not* cater for
if (isset($db_events[$unit][Event::BAT_MINUTE])) {
foreach ($db_events[$unit][Event::BAT_MINUTE] as $year => $months) {
foreach ($months as $month => $days) {
foreach ($days as $day => $hours) {
foreach ($hours as $hour => $minutes) {
foreach ($minutes as $minute => $value) {
$result[$year][$month][$day][$hour][$minute] = (int) $value == 0 ? $keyed_units[$unit]->getDefaultValue() : (int) $value;
}
ksort($result[$year][$month][$day][$hour], SORT_NATURAL);
}
}
}
}
}
return $result;
}