《PHP實(shí)戰(zhàn):php 無限級(jí)分類 獲取頂級(jí)分類ID》要點(diǎn):
本文介紹了PHP實(shí)戰(zhàn):php 無限級(jí)分類 獲取頂級(jí)分類ID,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
有這樣一個(gè)表,id是分類的ID,name是分類名稱,pid是上級(jí)分類的ID.PHP教程
現(xiàn)在有個(gè)分類ID,程序要找到它上級(jí)的上級(jí)的上級(jí)……分類的ID,簡單說就是找出頂級(jí)分類的ID.
比如“新鮮水果”的ID是13,對(duì)應(yīng)父類ID是5,而5的父ID是1,1沒有父類,也就是頂級(jí)分類了.PHP教程
以前年輕氣盛不懂事,總想著用遞歸來查找,然后再將結(jié)果緩存來辦理性能問題.
后來又試過將整個(gè)表緩存起來,再遞歸查找.
再后來……似乎比較少有機(jī)會(huì)遇到無限級(jí)分類……PHP教程
最近有個(gè)同事問我怎么“優(yōu)雅”的辦理這個(gè)問題.
于是我靈機(jī)一動(dòng),就有了如下辦理方案:PHP教程
<?php $sql = "select id, pid from tablename "; // 查詢后 將結(jié)果處理成 如下數(shù)組格式 $arr = [ // id => pid 1 => 0, // 省略... 5 => 1, // 省略... 13 => 5 ]; // 建議將這數(shù)組緩存起來 $id = 13; while($arr[$id]) { $id = $arr[$id]; } echo $id; // 1
不得不說:真是太優(yōu)雅了!連我都佩服我本身了,同事更是五體投地,痛哭流涕.
因?yàn)樗麑懥藥资醒h(huán)再判斷再遞歸的代碼,被我用兩行代碼替換了……PHP教程
歡迎參與《PHP實(shí)戰(zhàn):php 無限級(jí)分類 獲取頂級(jí)分類ID》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/7380.html