zoukankan      html  css  js  c++  java
  • 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
        )
    );
    

      

  • 相关阅读:
    android stagefright awesomeplayer 分析
    stagefright框架(七)-Audio和Video的同步
    stagefright框架(六)-Audio Playback的流程
    Windows Sockets Error Codes
    编译boost (windows msvc14)
    golang windows程序获取管理员权限(UAC ) via gocn
    阿里云容器服务--配置自定义路由服务应对DDOS攻击
    store / cache 系列
    一些项目感悟
    protobuf-3.0.0-beta-2 windows编译 x64/x86
  • 原文地址:https://www.cnblogs.com/bubaya/p/8109074.html
Copyright © 2011-2022 走看看