PHP сравнить 2 массива с временными диапазонами

Надеюсь, что кто-нибудь может помочь мне здесь.
У меня есть 2 массива с заданным временем начала и окончания.
Что мне нужно сделать, так это проверить, находится ли временной диапазон от Массива 1 в диапазоне Массива 2 и должен ли он быть удален из Массива 2.

Массив 1:

Array (
[0] => Array ( [from] => 10:00:00 [to] => 10:30:00 )
[1] => Array ( [from] => 11:00:00 [to] => 11:45:00 )
[2] => Array ( [from] => 14:00:00 [to] => 15:00:00 )
[3] => Array ( [from] => 16:30:00 [to] => 17:00:00 )
)

Массив 2:

Array (
[0] => Array ( [from] => 09:30 [to] => 10:00 )
[1] => Array ( [from] => 10:15 [to] => 10:45 )
[2] => Array ( [from] => 11:00 [to] => 11:30 )
[3] => Array ( [from] => 11:45 [to] => 12:15 )
[4] => Array ( [from] => 12:30 [to] => 13:00 )
[5] => Array ( [from] => 13:15 [to] => 13:45 )
[6] => Array ( [from] => 14:00 [to] => 14:30 )
[7] => Array ( [from] => 14:45 [to] => 15:15 )
[8] => Array ( [from] => 15:30 [to] => 16:00 )
[9] => Array ( [from] => 16:15 [to] => 16:45 )
[10] => Array ( [from] => 17:00 [to] => 17:30 )
[11] => Array ( [from] => 17:45 [to] => 18:15 )
[12] => Array ( [from] => 18:30 [to] => 19:00 )
[13] => Array ( [from] => 19:15 [to] => 19:45 )
)

Надеюсь, есть кто-то, кто может помочь мне с этим.
Заранее спасибо за помощь!

1

Решение

PS: отредактировано как ОП предоставило больше деталей.

Это должен быть комментарий, но: o «репутация!» Вы сделали это ответом !!

Ваш вопрос был неполным и неоднозначным! (дополнительная информация добавлена ​​позже)

Просто сравните все доступные временные интервалы с зарезервированными !, и если доступный временной интервал все еще «доступен», добавьте его во временный массив и, наконец, обновите массив доступных временных интервалов:

<?php
$array1 = Array (
0 => Array ( 'from' => '10:00:00', 'to' => '10:30:00' ),
1 => Array ( 'from' => '11:00:00', 'to' => '11:45:00' ),
2 => Array ( 'from' => '14:00:00', 'to' => '15:00:00' ),
3 => Array ( 'from' => '16:30:00', 'to' => '17:00:00' ) );

$array2 = Array(
0 => Array ( 'from' => '09:30', 'to' => '10:00' ),
1 => Array ( 'from' => '10:15', 'to' => '10:45' ),
2 => Array ( 'from' => '11:00', 'to' => '11:30' ),
3 => Array ( 'from' => '11:45', 'to' => '12:15' ),
4 => Array ( 'from' => '12:30', 'to' => '13:00' ),
5 => Array ( 'from' => '13:15', 'to' => '13:45' ),
6 => Array ( 'from' => '14:00', 'to' => '14:30' ),
7 => Array ( 'from' => '14:45', 'to' => '15:15' ),
8 => Array ( 'from' => '15:30', 'to' => '16:00' ),
9 => Array ( 'from' => '16:15', 'to' => '16:45' ),
10 => Array ( 'from' => '17:00', 'to' => '17:30' ),
11 => Array ( 'from' => '17:45', 'to' => '18:15' ),
12 => Array ( 'from' => '18:30', 'to' => '19:00' ),
13 => Array ( 'from' => '19:15', 'to' => '19:45' ) );

$a2 = array();
foreach( $array2 as $timeRange2 )
{
$a2f = strtotime($timeRange2['from']);
$a2t = strtotime($timeRange2['to']);
$bInArray2 = false;
foreach ( $array1 as $timeRange1 )
{
$a1f = strtotime($timeRange1['from']);
$a1t = strtotime($timeRange1['to']);

if(($a1f >= $a2f && $a1f <= $a2t) || ($a1t >= $a2f && $a1t <= $a2t))
{
$bInArray2 = true;
break;
}
}
if(!$bInArray2)
$a2[] = $timeRange2;
}
$array2 = $a2;
echo var_dump($array2);
?>
1

Другие решения

Других решений пока нет …