Forum Webscript.Ru

Программирование => PHP => Тема начата: docker от 13 Октября 2004, 13:23:54

Название: Объединение временных массивов...
Отправлено: docker от 13 Октября 2004, 13:23:54
Добрый день.
есть пара временных массивов в виде:

Array
(
    [0] => Array
        (
            [from] => 1097562600
            [to] => 1097577000
        )

    [1] => Array
        (
            [from] => 1097578800
            [to] => 1097582400
        )

    [2] => Array
        (
            [from] => 1097583000
            [to] => 1097586300
        )

)

Array
(
    [0] => Array
        (
            [from] => 1097562501
            [to] => 1097577000
        )

    [1] => Array
        (
            [from] => 1097578800
            [to] => 1097582400
        )

    [2] => Array
        (
            [from] => 1097583000
            [to] => 1097586300
        )

)



from - время начала интервала
to - время конца интервала
Требуется выполнить простейшую оперцию из теории множеств - объединение!

Т.е. получить результирующий массив отрезков, которые бы внутри себя содержали все отрезки из обоих массивов...

Кто-нибудь сталкивался с подобной задачей? Каков примерный алгоритм решения?

Если брать решение в лоб, то получается так:
-взять первый отрезок первого массива
-проверить не накладывается ли на него какой-нибудь отрезок из 2-го массива
-если накладывается(и выходит за границы), то первый элемент результирующего массива будет объединять эти отрезки
- проверить, остались ли отрезки первого массивы, вне границ первого результирующего отрезка
- если остались, то взять этот первый элемент и аналогично сравнить его со всеми элементами 2-го массива, которые выходят за его границы....

Каждый из этих пунктов - это уже объемный кусок кода. Может даже реккурсию придется применять....

Интересно, есть какие-нибудь более простые варианты решения данной задачи....