• php 几个算法


    /**
         * 返回当前运行文件名
         * @acces private
         * @return string
         */
        private function run_filename() {
                $tmparr = explode(DIRECTORY_SEPARATOR,__FILE__);
                return end($tmparr);
        }
    
    //例:
        $this->run_filename();//返回当前文件名
    

      

    /**
         * 递归一维重复数组值
         * @以键名为数量值
         * @acces private
         * @return array
         */
        private function recursion_arr($arr,$data=[]) {
            $unique_arr = array_unique ( $arr );
            $repeat_arr = array_diff_assoc ( $arr, $unique_arr );
            foreach(array_unique($repeat_arr) as $repeat_arr_val) {
                $repeat_arr_key   = array_search($repeat_arr_val,$unique_arr);
                unset($unique_arr[$repeat_arr_key]);
            }
            $start_count = count($repeat_arr);
            $tmp = array_unique($repeat_arr);
            $executed_count = count($tmp);
            $data[] = $unique_arr;
            if($start_count > $executed_count) { //如果有相同的值,继续回调
                $result = $this->recursion_arr($repeat_arr,$data);
                return $result; //一层一层传上来
            }else{
                if($repeat_arr) {
                    $data[] = $repeat_arr;
                }
                return $data; //直到底层开始返回结果
            }
        }  
    //例:
    $arr = array(
      0=>1,
      1=>2,
      2=>2,
      3=>3,
      4=>3,
      5=>3,
      6=>4,
      7=>4,
      8=>4,
      9=>4,
    );
    $this->recursion_arr($arr);
    //结果:
    array(
      0=>array(
          0=>1
        ),
      1=>array(
          0=>2,
          1=>2
        ),
      2=>array(
          0=>3,
          1=>3,
          2=>3
        ),
      3=>array(
          0=>4,
          1=>4,
          2=>4,
          3=>4
        )
    );
    

      

  • 相关阅读:
    南北朝
    霍去病
    晋 司马
    唐代 诗人
    Getting Started with Google Tango(Google Tango开始教程)
    第二届普适计算和信号处理及应用国际会议论文2016年 The 2nd Conference on Pervasive Computing, Signal Processing and Applications(PCSPA, 2016)
    TurtleBot教程
    ROS教程
    《SLAM for Dummies》中文版《SLAM初学者教程》
    Sensor fusion(传感器融合)
  • 原文地址:https://www.cnblogs.com/bubaya/p/8109074.html
Copyright © 2020-2023  润新知