1, 'yellow' => 2, 'green' => 3, default => 4, }; }; foreach ($boards as &$board) { if (empty($board['tasks']) || !is_array($board['tasks'])) { continue; } usort($board['tasks'], function (array $a, array $b) use ($deadlineRank): int { $rankA = $deadlineRank($a); $rankB = $deadlineRank($b); if ($rankA !== $rankB) { return $rankA <=> $rankB; } return strtotime((string)($a['planned_at'] ?? '9999-12-31')) <=> strtotime((string)($b['planned_at'] ?? '9999-12-31')); }); } unset($board); ?>