Объединяйте дни, где часы работы аналогичны

Как я могу закодировать функцию в PHP (с помощью CodeIgniter), чтобы объединить дни с аналогичным временем работы магазина вместе. Например, если у нас есть:

Mon 9am-5pm Tue 9am-5pm Wed 9am-5pm Thu 9am-5pm Fri 9am-5pm Sat 9am-7pm Sun 9am-7pm 

Я хочу, чтобы код упрощал его:

 Mon-Fri 9am-5pm Sat-Sun 9am-7pm 

Как мне это сделать без длинного списка if / else или case ifs? Я использую CodeIgniter ..

 <?php $openHours = array( 'Mon' => '9am-5pm', 'Tue' => '9am-5pm', 'Wed' => '9am-9pm', 'Thu' => '9am-5pm', 'Fri' => '9am-5pm', 'Sat' => '9am-7pm', 'Sun' => '9am-7pm' ); $summaries = array(); foreach ($openHours as $day => $hours) { if (count($summaries) === 0) { $current = false; } else { $current = &$summaries[count($summaries) - 1]; } if ($current === false || $current['hours'] !== $hours) { $summaries[] = array('hours' => $hours, 'days' => array($day)); } else { $current['days'][] = $day; } } foreach ($summaries as $summary) { if (count($summary['days']) === 1) { echo reset($summary['days']) . ' ' . $summary['hours'] . PHP_EOL; } else { echo reset($summary['days']) . '-' . end($summary['days']) . ' ' . $summary['hours'] . PHP_EOL; } } 

образец кодекса