層級:PHP怎樣實現(xiàn)遞歸按層級查找數(shù)據(jù)
【溫馨提示】本文部分內(nèi)容來源互聯(lián)網(wǎng),僅作參考!如需咨詢“PHP怎樣實現(xiàn)遞歸按層級查找數(shù)據(jù)”等有關(guān)服務(wù)器、云主機(jī)租用、托管、配置、價格問題,請在線咨詢YINGSOO客服,獲取專業(yè)解答!
【暢銷主機(jī)】美國顯卡服務(wù)器促銷 | 香港站群服務(wù)器促銷 | 服務(wù)器促銷活動
【精選好文】買了一臺云服務(wù)器到底能干嘛?
這篇文章給大家分享的是PHP使用遞歸來按層級查找數(shù)據(jù)的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,文中示例代碼介紹的非常詳細(xì),感興趣的朋友接下來一起跟隨小編看看吧。
原理挺簡單的,主要是通過父級id一級一級的循環(huán)查找子級,使用PHP循環(huán)代碼也很容易實現(xiàn),不過如果層級越多,PHP重復(fù)代碼也越多,這時可以使用遞歸來實現(xiàn)這功能。
1、首先查出要使用的數(shù)據(jù)組成一個數(shù)組(避免遞歸里查詢數(shù)據(jù)庫,之后根據(jù)這個數(shù)組組成自己需要的數(shù)據(jù)就可以了)
比如得到如下數(shù)據(jù):
$data = [ ['id' => '1', 'pid' => '0', 'dsp' => '1'], ['id' => '2', 'pid' => '0', 'dsp' => '2'], ['id' => '3', 'pid' => '0', 'dsp' => '3'], ['id' => '4', 'pid' => '1', 'dsp' => '1-4'], ['id' => '5', 'pid' => '4', 'dsp' => '1-4-5'], ['id' => '6', 'pid' => '5', 'dsp' => '1-4-5-6'], ['id' => '7', 'pid' => '3', 'dsp' => '3-7'], ['id' => '8', 'pid' => '2', 'dsp' => '2-8'], ['id' => '9', 'pid' => '1', 'dsp' => '1-9'], ['id' => '10', 'pid' => '4', 'dsp' => '1-4-10'],];
2、接下來使用遞歸重組數(shù)據(jù),使數(shù)據(jù)按層級顯示。
/** * 根據(jù)父級id查找子級數(shù)據(jù) * @param $data 要查詢的數(shù)據(jù) * @param int $pid 父級id */public function recursion($data, $pid = 0){ static $child = [];
// 定義存儲子級數(shù)據(jù)數(shù)組
foreach ($data as $key => $value) { if ($value['pid'] == $pid) { $child[] = $value;
// 滿足條件的數(shù)據(jù)添加進(jìn)child數(shù)組
unset($data[$key]);
// 使用過后可以銷毀
$this->recursion($data, $value['id']);
// 遞歸調(diào)用,查找當(dāng)前數(shù)據(jù)的子級
} } return $child;}
得到結(jié)果:
[ { "id": "1", "pid": "0", "dsp": "1" }, { "id": "4", "pid": "1", "dsp": "1-4" }, { "id": "5", "pid": "4", "dsp": "1-4-5" }, { "id": "6", "pid": "5", "dsp": "1-4-5-6" }, { "id": "10", "pid": "4", "dsp": "1-4-10" }, { "id": "9", "pid": "1", "dsp": "1-9" }, { "id": "2", "pid": "0", "dsp": "2" }, { "id": "8", "pid": "2", "dsp": "2-8" }, { "id": "3", "pid": "0", "dsp": "3" }, { "id": "7", "pid": "3", "dsp": "3-7" }]
總結(jié)
以上就是關(guān)于PHP使用遞歸來按層級查找數(shù)據(jù)的介紹,上述示例具有一定的借鑒價值,有需要的朋友可以參考學(xué)習(xí),希望對大家學(xué)習(xí)PHP有幫助,想要了解更多可以繼續(xù)瀏覽本公司其他相關(guān)的文章。
想要挑選好的海外云服務(wù)器,就得挑選好的海外云服務(wù)器提供商。YINGSOO是一家專注海外主機(jī)業(yè)務(wù)的IDC服務(wù)商,10年經(jīng)驗,專業(yè)團(tuán)隊,品質(zhì)有保障,服務(wù)更貼心!服務(wù)熱線:400-630-3752
熱搜詞條:【服務(wù)器什么情況會導(dǎo)致帶寬滿了】【網(wǎng)絡(luò)游戲的服務(wù)器到底張什么樣的】【挖礦收款是礦池】【免費永久云服務(wù)器推薦】【私有云 物理機(jī)配置】【奇亞提幣教程】【能追蹤到美國服務(wù)器嗎】【工業(yè)物聯(lián)網(wǎng)網(wǎng)絡(luò)服務(wù)器】【香港服務(wù)器延遲】【物理服務(wù)器做公司公用文件】【天璣920 和麒麟820】【奇亞chia幣能升值嗎】【Chia主網(wǎng)故障問題及影響公告】【公網(wǎng)分布式存儲】【如何搭建國外服務(wù)器】【獨享服務(wù)器】【外國礦場】【高防 多少G 怎么算的】【ssr科學(xué)云加速】【租用IP】【虛擬主機(jī)開通后】【個人服務(wù)器有哪些用途】【香港vps 封ip】【安全認(rèn)證服務(wù)器 公司】【服務(wù)器在過國外的網(wǎng)站有誰監(jiān)管】【mass算力激活】【手機(jī)行業(yè)現(xiàn)在還好干嗎】【chia 運行日志】【租用服務(wù)器】【chia8444被占用】
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信