我有一个阵列。
Array
(
[0] => Array
(
[starttime] => 08:00
[endtime] => 9.30:00
)
[1] => Array
(
[starttime] => 10:00
[endtime] => 11:00
)
[2] => Array
(
[starttime] => 10:00
[endtime] => 12:00
)
)
我希望在时间和返回工会时间之间删除一些东西
喜欢
Array
(
[0] => Array
(
[starttime] => 08:00
[endtime] => 09:30
)
[2] => Array
(
[starttime] => 10:00
[endtime] => 12:00
)
)
这里08:00和9:30单身其他就在他们之间bcz 10:00 - 11:00更大到9:30。
10:00 - 11:00在10:00 - 12:00之间,所以删除第二个对象只显示第一个和第三个
只是打电话给工会时间。
逻辑
我在想他们并且有一个逻辑
首先找到最小的startime。然后检查此最小的startime到endtime之间的任何其他值。
Example
我怎么能这样做。
答案 0 :(得分:0)
以下是如何做到这一点
$array = array(
array('starttime' => '08:00' , 'endtime' => '09:30') ,
array('starttime' => '10:00' , 'endtime' => '11:00') ,
array('starttime' => '10:00' , 'endtime' => '12:00') ,
);
$i=0;
foreach($array as $row){
if(isset($array[$i-1])){
$prev = $array[$i];
if($row['starttime'] < $prev['endtime'] || $row['endtime'] > $prev['endtime']){
unset($array[$i]);
}
}
$i++;
}
echo '<pre>';
print_r($array);
您可以粘贴并测试代码here。
输出
Array
(
[0] => Array
(
[starttime] => 08:00
[endtime] => 09:30
)
[2] => Array
(
[starttime] => 10:00
[endtime] => 12:00
)
)