检查时间和工会时间

时间:2014-08-27 12:28:36

标签: php mysql sql arrays

我有一个阵列。

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

我怎么能这样做。

1 个答案:

答案 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
            )

    )