Приветствую!
Извиняюсь за обращение, у меня головная боль по работе с датами.
Мне надо сделать следующую вещь: если периоды пересекаются, то надо их разделить.
Входящие данные (для примера, в реальности объекты datetime)
[
0 => ['openDate' => "2018-05-15", 'closeeDate' => "2018-05-30", "item" => 77],
1 => ['openDate' => "2018-05-20", 'closeeDate' => "2018-05-25", "item" => 60]
]
В данном примере, первый период надо разделить на два (key: 0, 2).
Т.е. на выходе получить
[
0 => ['openDate' => "2018-05-15", 'closeeDate' => "2018-05-19", "item" => 77]
1 => ['openDate' => "2018-05-20", 'closeeDate' => "2018-05-25", "item" => 60],
2 => ['openDate' => "2018-05-26", 'closeeDate' => "2018-05-30", "item" => 77],
]
Можете подкинуть алгоритм?
Спасибо.
UPD
Разбивать периоды по каждому дню не вариант. Могут прийти десятки массивов, в которых периоды на год или два.
Я пока вижу вариант, искать пересечение (это просто). А как дальше сформировать требуемые периоды. Т.е. подробить.