У меня есть массив в следующем формате:
array(
0 => array(1, 5),
1 => array(4, 8),
2 => array(19, 24),
3 => array(6, 9),
4 => array(11, 17),
);
Где каждый элемент представляет собой диапазон X-to-Y. Что бы я хотел объединить перекрывающиеся диапазоны в массиве, чтобы получить что-то похожее на это:
array(
0 => array(1, 9), // 1-5, 4-8 and 6-9 are overlapping, so they are merged
1 => array(11, 17),
2 => array(19, 24),
);
Каков наилучший способ сделать это?