PHP如何實現遞歸

剛學PHP那會兒,遞歸真的是超級難;現在也說不上是簡單。也算是PHP的一個難點吧!

----最常見的遞歸無異於無限極分類;

----今天就以無限極分類和大家舉一個demo;

1. 我們先建一個簡單的菜單表,字段如下;

菜單表(groups);字段簡單舉例:id, pid, name;

2. 我們使用TP語法來實現;

public function index() {
    $list = Db::table('groups')->select();
    $res = $this->datas($list, $pid=0);
    return $res;
}

// 遞歸查詢
public function datas($list, $pid=0) {
    $newArr = [];
    foreach ($list as $key => $value) {
	if ($value['pid'] == $pid) {
		$newArr[$value['id']] = $value;
                // 關鍵點;根據pid(父級id)的不同再次調用方法;
		$newArr[$value['id']]['zi'] = $this->data1($list, $value['id']);
	}
    }
    return $newArr;
}

3. 上述方法通過php中文網的學習而認知的;以前所說是用遞歸實現了,但也查了好多遍數據庫;

    優點:查詢了一遍數據庫,很大減輕了數據庫的負擔;代碼也很簡介;

 

2020年第一篇文章;也非常自己在新的一年中和大家技術有所提升,薪資飆漲;(只爭朝夕,不負韶華);

發佈了15 篇原創文章 · 獲贊 28 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章