a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 學院 > 邏輯算法 > 正文

PHP遞歸算法詳解

2020-03-22 18:54:19
字體:
供稿:網(wǎng)友

本篇文章主要介紹PHP遞歸算法詳解,感興趣的朋友參考下,希望對大家有所幫助。

遇到需要設(shè)計樹節(jié)點的數(shù)據(jù)庫結(jié)構(gòu),以及需要讀出來的樹節(jié)點數(shù)據(jù)結(jié)構(gòu)!大家是否會選擇用數(shù)據(jù)庫的查詢方式來獲取樹結(jié)構(gòu)呢?

//曾經(jīng)的數(shù)據(jù)庫查詢獲取方式$res = $this->db->query("select * from menu where pid = 0");foreach($res as $k=>$v){     $res[$k]['child'] = $this->db->query("select * from menu where pid =".$v['id']);}

//獲得結(jié)果 $res;
注意:不得不說,這種方式的確可行,但是它的缺點在于,你需要固定多少層級,以及數(shù)據(jù)庫的大量運行查詢。
不要忽視了那點數(shù)據(jù)庫的查詢消耗哦,數(shù)據(jù)小還無所謂,但是數(shù)據(jù)量大了。這種可行的方式,會給系統(tǒng)帶來很大的負擔!
那么,大家要明白一個道理,有些時候 數(shù)據(jù)庫的操作 利大于 PHP程序算法,有些時候則反之!
在這種基礎(chǔ)的樹節(jié)點情況下,用算法是最佳的。

PHP 代碼算法(CI框架實現(xiàn):并非打廣告!)

  html' target='_blank'>public function getMenus(){    //查詢    $res = $this->db->get('menu')->result_array();    $res = $this->getChild($res);    print_r($res);}/** * 遞歸 樹節(jié)點算法 * @param array $array * @param number $pid */private function getChild($array,$pid = 0){    $data = array();    foreach ($array as $k=>$v){        //PID符合條件的        if($v['pid'] == $pid){            //尋找子集            $child = $this->getChild($array,$v['id']);            //加入數(shù)組            $v['child'] = $child?:array();             $data[] = $v;//加入數(shù)組中        }    }    return $data;}

//這樣的好處在于,運算速度快,消耗小,而且不定層級。意味著,數(shù)據(jù)庫寫多少層級,該算法,都可以獲取出來
結(jié)果:

Array([0] => Array    (        [id] => 1        [title] => PHP         [pid] => 0        [sort] => 0        [child] => Array            (            ))[1] => Array    (        [id] => 2        [title] => 系統(tǒng)設(shè)置        [pid] => 0        [sort] => 99        [child] => Array            (                [0] => Array                    (                        [id] => 4                        [title] => 權(quán)限管理                        [pid] => 2                        [sort] => 2                        [child] => Array                            (                            )                    )                [1] => Array                    (                        [id] => 5                        [title] => 菜單欄目                        [pid] => 2                        [sort] => 0                        [child] => Array                            (                            )                    )                [2] => Array                    (                        [id] => 3                        [title] => 管理員                        [pid] => 2                        [sort] => 99                        [child] => Array                            (                            )                    )            )    ))

相關(guān)推薦:

Python基于遞歸算法實現(xiàn)的漢諾塔與Fibonacci數(shù)列

PHP漢諾塔問題的遞歸算法的實現(xiàn)和迭代算法的實現(xiàn)

PHP漢諾塔問題的遞歸算法實現(xiàn)和迭代算法實現(xiàn)

以上就是PHP遞歸算法詳解的詳細內(nèi)容,更多請關(guān)注 其它相關(guān)文章!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲成人av电影 | 特级黄色毛片在放 | 毛片一区| 国产一区二区视频在线观看 | 中文字幕第80页 | 第一色站 | av 一区二区三区 | 日本1区2区 | 97伦理电影院 | 特黄特黄a级毛片免费专区 亚洲国产成人在线视频 | 一区二区亚洲视频 | а天堂中文最新一区二区三区 | 亚洲国产精品久久 | 毛片av网站 | 欧美亚洲高清 | 一区二区在线视频观看 | 欧美性猛片aaaaaaa做受 | 欧美成人在线网站 | 亚洲激情 欧美 | 亚洲日韩中文字幕一区 | 亚洲精品久久久狠狠狠爱 | 免费黄色网页 | 自拍偷拍第一页 | 亚洲精品视频在线 | 国产高清精品一区 | 高清一区二区三区 | 亚洲a网 | 久久精品黄色 | 日韩av一区二区三区四区 | 一级少妇视频 | 日批免费视频 | 久久电影国产免费久久电影 | 精品少妇一区二区 | 国产成人精品av | 国产在线1区 | 成人免费观看网址 | 欧美日韩中文字幕 | 欧美成人手机在线视频 | 久久xxx| 久久污| 逼逼av |