php 幾個演算法

來源:互聯網
上載者:User

標籤:name   回調   sep   function   uniq   檔案名稱   star   arc   data   

/**     * 返回當前運行檔案名稱     * @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    ));

  

php 幾個演算法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.