Merge Intervals

Merge overlapping intervals into consolidated ranges, a classic algorithm for scheduling and resource allocation.

Code

Algorithms
usort($intervals, fn($a, $b) => $a[0] - $b[0]);
$merged = [$intervals[0]];
for ($i = 1; $i < count($intervals); $i++) {
    $last = &$merged[count($merged) - 1];
    if ($intervals[$i][0] <= $last[1]) {
        $last[1] = max($last[1], $intervals[$i][1]);
    } else {
        $merged[] = $intervals[$i];
    }
}
return $merged;

Parameters

Array of [start, end] intervals

Server

More PHP Snippets