91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP無限極分類的示例分析

發布時間:2021-08-31 13:46:04 來源:億速云 閱讀:111 作者:小新 欄目:開發技術

這篇文章主要介紹了PHP無限極分類的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

首先我們有一張欄目數據表 tree

表結構如下圖(原文有圖)

PHP無限極分類的示例分析

看上去表結構很簡單。

我們插入幾條測試數據

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為基礎,因此我們的寫法也按照面向對象的規則來

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無限極分類的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

班玛县| 崇礼县| 丘北县| 祁门县| 象山县| 东乌珠穆沁旗| 灵武市| 武陟县| 翼城县| 小金县| 莱西市| 青海省| 望奎县| 三亚市| 万年县| 敦煌市| 青浦区| 梓潼县| 县级市| 南投市| 清苑县| 庆城县| 罗甸县| 乐至县| 资阳市| 清丰县| 东乡县| 偏关县| 张家口市| 朔州市| 平安县| 循化| 堆龙德庆县| 二手房| 尖扎县| 连江县| 昌吉市| 定南县| 河东区| 上栗县| 阳江市|