Поскольку все ваши условные ветви приводят к одному и тому же утверждению, его можно записать как одно выражение if (см. Ниже).
public function getAllEventsByDate($allEvents, $date) {
$theEvents = array();
foreach ($allEvents as $event) {
if (
( ($date == 'future') && ($event['start'] > time()) ) ||
( ($date == 'past') && ($event['stop'] < time()) ) ||
( ($date == 'current') && ($event['start'] < time()) && ($event['stop'] > time()) )
) {
$theEvents[] = $event;
}
return $theEvents;
}