国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

深入淺析PHP無限極分類的案例教程

2020-03-22 18:33:10
字體:
來源:轉載
供稿:網友
平時開發中或多或少不可避免會遇到無限極分類的問題,因為效率、邏輯等問題也一直使這類問題比較尖銳。今天我們以yii2框架為基礎,欄目無限極為例,對這個問題進行一個簡單的處理。首先我們有一張欄目數據表 tree表結構如下圖(原文有圖)看上去表結構很簡單。我們插入幾條測試數據INSERT INTO `tree` (`id`, `parent_id`, `name`) VALUES (1, 0, 'A'), (2, 0, 'B'), (3, 1, 'a'), (4, 3, 'aa'), (5, 2, 'b'), (6, 4, 'aaa');樹形結構大致如下|A
|--a
|----aa
|------aaa
|B
|--b這也正是我們所需要的數據結構形式,下面我們來看看如何處理才能夠得到所需要的結果。我們前面也說了,以yii2為基礎,因此我們的寫法也按照html' target='_blank'>面向對象的規則來class tree { //訪問index查看樹形結構 public function actionIndex () { $data = self::getTree(); //為了方便測試,我們這里以json格式輸出 /Yii::$app- response- format = /yii/web/Response::FORMAT_JSON; return $data; //獲取樹 public static function getTree () { //這里我們直接獲取所有的數據,然后通過程序進行處理 //在無限極分類中最忌諱的是對數據庫進行層層操作,也就很容易造成內存溢出 //最后電腦死機的結果 $data = static::find()- all(); return self::_generateTree($data); //生成樹 private static function _generateTree ($data, $pid = 0) { $tree = []; if ($data && is_array($data)) { foreach($data as $v) { if($v['parent_id'] == $pid) { $tree[] = [ 'id' = $v['id'], 'name' = $v['name'], 'parent_id' = $v['parent_id'], 'children' = self::_generateTree($data, $v['id']), return $tree; }我們訪問下tree/index看看,效果圖如下這樣我們可以看到一個很清晰的樹形結構圖,也就是我們最終所需要的。關于PHP無限極分類的案例教程就給大家介紹這么多,希望對大家有所幫助!PHP教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 禄丰县| 木里| 台湾省| 奉贤区| 涡阳县| 肇州县| 莒南县| 霍林郭勒市| 莫力| 确山县| 工布江达县| 金溪县| 利津县| 霍林郭勒市| 雅安市| 浦县| 南昌市| 深州市| 安西县| 桓台县| 济源市| 通化市| 揭阳市| 鄂伦春自治旗| 朝阳市| 大新县| 寻甸| 闽侯县| 瑞安市| 方城县| 华安县| 汉沽区| 尤溪县| 奉化市| 碌曲县| 安仁县| 江城| 昌宁县| 扎鲁特旗| 德庆县| 镇巴县|