栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

PHP关于时间的时段的重合、 整合的方法

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PHP关于时间的时段的重合、 整合的方法

 

     

     function get_min_max($a,$b){

        $sort = array_merge($a,$b);

        array_multisort($sort);

        $end = array_pop($sort);

        return $sort[0].'#'.$end;//array($sort[0],$end);

    }


   

     function is_repeat($target,$compare,$run = true){

        $min = $compare[0];

        $max = $compare[1];

        $res = false;

        foreach($target as $v){

            if(($v >= $min && $v <= $max)) {

                $res = true;

                break;

            }

        }

        if($run && !$res){

          $res = is_repeat($compare,$target,false);

        }

        return $res;

    }


   

     function changevalue($val){

        $val = array_unique($val);

        $list = array();

        foreach($val as $v){

            $list[] = explode('#',$v);

        }

        return $list;

    }


   

     function main_run($all){

        $leng = count($all);

        $result = $un = array();

        $count = 0;

       for($i = 0;$i<$leng;$i++){

        for($j = $leng - 1;$j >= $i;$j--){

            if(is_repeat($all[$j],$all[$i])){

                if($j != $i){

                    $count++;

                }else{

                    $un[] = $all[$i][0].'#'.$all[$i][1];

                }

                $result[] = get_min_max($all[$j],$all[$i]);

                $all[$i] = $all[$j] = array(-3,-2);

                

            }else{

                $un[] = $all[$i][0].'#'.$all[$i][1];

            }

         }

          

        }

      

        $result = array_merge($result,$un);

      

        if($count == 0){

           $result = $all;

        }

        return array('c'=>$count,'v'=>$result);

    }


   

     function getComfirmTimes($all){

        if(empty($all)){

            return array();

        }

        $c=0;

        do{

          $is_end = main_run($all);

          if($is_end['c'] != 0){

              //var_dump($all);

              $all = changevalue($is_end['v']);

              

          }else{

             

              foreach($all as $k=>$v){

                  if($v[0] == -3){

                      unset($all[$k]);

                  }

              }

          }

          $c++;

        }while($is_end['c'] != 0 && $c < 120);

        return $all;

    }


    $test = array(

    array(2,6),

    array(5,9),

    array(10,11),

    array(15,20),

    array(22,23),

    array(13,19)

    );

    $res = getComfirmTimes($test);

    print_r($res);

?>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/228962.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号