国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

超優雅!兩行代碼搞定 php 無限級分類 獲取頂級分類ID

hedzr / 2946人閱讀

摘要:有這樣一個表,是分類的,是分類名稱,是上級分類的。現在有個分類,程序要找到它上級的上級的上級分類的,簡單說就是找出頂級分類的。比如新鮮水果的是,對應父類是,而的父是,沒有父類,也就是頂級分類了。

有這樣一個表,id是分類的ID,name是分類名稱,pid是上級分類的ID。

現在有個分類ID,程序要找到它上級的上級的上級……分類的ID,簡單說就是找出頂級分類的ID。
比如“新鮮水果”的ID是13,對應父類ID是5,而5的父ID是1,1沒有父類,也就是頂級分類了。

以前年輕氣盛不懂事,總想著用遞歸來查找,然后再將結果緩存來解決性能問題。
后來又試過將整個表緩存起來,再遞歸查找。
再后來……似乎比較少有機會遇到無限級分類……

最近有個同事問我怎么“優雅”的解決這個問題。
于是我靈機一動,就有了如下解決方案:

 pid
    1 => 0,
    // 省略...
    5 => 1,
    // 省略...
    13 => 5
];
// 建議將這數組緩存起來

$id = 13;
while($arr[$id]) {
    $id = $arr[$id];
}
echo $id; // 1

不得不說:真是太優雅了!連我都佩服我自己了,同事更是五體投地,痛哭流涕。
因為他寫了幾十行循環再判斷再遞歸的代碼,被我用兩行代碼替換了……

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/21420.html

相關文章

  • 優雅!node.js 無限分類,無遞歸獲取所有下分類ID

    摘要:昨天幫同事解決問題,于是誕生了超優雅兩行代碼搞定無限級分類獲取頂級分類這篇文章。這次要解決的問題是根據分類,獲取所有下級分類的,這里說的所有下級分類,是包含下級下下級下下下級另外剛好在學習,于是用上了對象。 昨天幫同事解決問題,于是誕生了超優雅!兩行代碼搞定 php 無限級分類 獲取頂級分類ID這篇文章。 晚上回家做自己的node.js項目的時候,又遇到關于無限級分類的問題了。其實也不...

    calx 評論0 收藏0
  • 在數據庫中存儲一棵樹,實現無限分類

    摘要:第三條同樣需要遞歸,因為通過一個分類,數據庫中只存儲了其直屬父類,需要通過遞歸到頂級分類才能獲取到它們之間的所有分類信息。 原文發表于我的博客: https://blog.kaciras.net/article/36 在一些系統中,對內容進行分類是必需的功能。比如電商就需要對商品做分類處理,以便于客戶搜索;論壇也會分為很多板塊;門戶網站、也得對網站的內容做各種分類。 分類對于一個內容展...

    Airy 評論0 收藏0
  • PHP框架之ThinkPHP模塊開發系列八,無限分類的刪除

    摘要:我們在新建一個刪除前的鉤子函數,再利用遞歸方法實現子欄目的刪除。最后我們刪除把鉤子函數恢復到原始狀態在瀏覽器中輸入,然后點擊美國一欄中的刪除,此時會同時刪除美國下的紐約。至此,無限級分類的刪除功能操作完畢。 在此現更正一下之前的預告,之前忘記了先應該把無限級分類欄目列表功能做完,也就是刪除功能還沒做,所以今天我們先做刪除,下一節再做面包屑導航。非常抱歉。 同時,不知道是什么原因,上一節...

    BWrong 評論0 收藏0

發表評論

0條評論

hedzr

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<