亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

超優(yōu)雅!兩行代碼搞定 php 無(wú)限級(jí)分類(lèi) 獲取頂級(jí)分類(lèi)ID

hedzr / 3024人閱讀

摘要:有這樣一個(gè)表,是分類(lèi)的,是分類(lèi)名稱(chēng),是上級(jí)分類(lèi)的?,F(xiàn)在有個(gè)分類(lèi),程序要找到它上級(jí)的上級(jí)的上級(jí)分類(lèi)的,簡(jiǎn)單說(shuō)就是找出頂級(jí)分類(lèi)的。比如新鮮水果的是,對(duì)應(yīng)父類(lèi)是,而的父是,沒(méi)有父類(lèi),也就是頂級(jí)分類(lèi)了。

有這樣一個(gè)表,id是分類(lèi)的ID,name是分類(lèi)名稱(chēng),pid是上級(jí)分類(lèi)的ID。

現(xiàn)在有個(gè)分類(lèi)ID,程序要找到它上級(jí)的上級(jí)的上級(jí)……分類(lèi)的ID,簡(jiǎn)單說(shuō)就是找出頂級(jí)分類(lèi)的ID。
比如“新鮮水果”的ID是13,對(duì)應(yīng)父類(lèi)ID是5,而5的父ID是1,1沒(méi)有父類(lèi),也就是頂級(jí)分類(lèi)了。

以前年輕氣盛不懂事,總想著用遞歸來(lái)查找,然后再將結(jié)果緩存來(lái)解決性能問(wèn)題。
后來(lái)又試過(guò)將整個(gè)表緩存起來(lái),再遞歸查找。
再后來(lái)……似乎比較少有機(jī)會(huì)遇到無(wú)限級(jí)分類(lèi)……

最近有個(gè)同事問(wèn)我怎么“優(yōu)雅”的解決這個(gè)問(wèn)題。
于是我靈機(jī)一動(dòng),就有了如下解決方案:

 pid
    1 => 0,
    // 省略...
    5 => 1,
    // 省略...
    13 => 5
];
// 建議將這數(shù)組緩存起來(lái)

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

不得不說(shuō):真是太優(yōu)雅了!連我都佩服我自己了,同事更是五體投地,痛哭流涕。
因?yàn)樗麑?xiě)了幾十行循環(huán)再判斷再遞歸的代碼,被我用兩行代碼替換了……

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/21420.html

相關(guān)文章

  • 優(yōu)雅!node.js 無(wú)限級(jí)分類(lèi),無(wú)遞歸獲取所有下級(jí)分類(lèi)ID

    摘要:昨天幫同事解決問(wèn)題,于是誕生了超優(yōu)雅兩行代碼搞定無(wú)限級(jí)分類(lèi)獲取頂級(jí)分類(lèi)這篇文章。這次要解決的問(wèn)題是根據(jù)分類(lèi),獲取所有下級(jí)分類(lèi)的,這里說(shuō)的所有下級(jí)分類(lèi),是包含下級(jí)下下級(jí)下下下級(jí)另外剛好在學(xué)習(xí),于是用上了對(duì)象。 昨天幫同事解決問(wèn)題,于是誕生了超優(yōu)雅!兩行代碼搞定 php 無(wú)限級(jí)分類(lèi) 獲取頂級(jí)分類(lèi)ID這篇文章。 晚上回家做自己的node.js項(xiàng)目的時(shí)候,又遇到關(guān)于無(wú)限級(jí)分類(lèi)的問(wèn)題了。其實(shí)也不...

    calx 評(píng)論0 收藏0
  • 在數(shù)據(jù)庫(kù)中存儲(chǔ)一棵樹(shù),實(shí)現(xiàn)無(wú)限級(jí)分類(lèi)

    摘要:第三條同樣需要遞歸,因?yàn)橥ㄟ^(guò)一個(gè)分類(lèi),數(shù)據(jù)庫(kù)中只存儲(chǔ)了其直屬父類(lèi),需要通過(guò)遞歸到頂級(jí)分類(lèi)才能獲取到它們之間的所有分類(lèi)信息。 原文發(fā)表于我的博客: https://blog.kaciras.net/article/36 在一些系統(tǒng)中,對(duì)內(nèi)容進(jìn)行分類(lèi)是必需的功能。比如電商就需要對(duì)商品做分類(lèi)處理,以便于客戶(hù)搜索;論壇也會(huì)分為很多板塊;門(mén)戶(hù)網(wǎng)站、也得對(duì)網(wǎng)站的內(nèi)容做各種分類(lèi)。 分類(lèi)對(duì)于一個(gè)內(nèi)容展...

    Airy 評(píng)論0 收藏0
  • PHP框架之ThinkPHP模塊開(kāi)發(fā)系列八,無(wú)限級(jí)分類(lèi)的刪除

    摘要:我們?cè)谛陆ㄒ粋€(gè)刪除前的鉤子函數(shù),再利用遞歸方法實(shí)現(xiàn)子欄目的刪除。最后我們刪除把鉤子函數(shù)恢復(fù)到原始狀態(tài)在瀏覽器中輸入,然后點(diǎn)擊美國(guó)一欄中的刪除,此時(shí)會(huì)同時(shí)刪除美國(guó)下的紐約。至此,無(wú)限級(jí)分類(lèi)的刪除功能操作完畢。 在此現(xiàn)更正一下之前的預(yù)告,之前忘記了先應(yīng)該把無(wú)限級(jí)分類(lèi)欄目列表功能做完,也就是刪除功能還沒(méi)做,所以今天我們先做刪除,下一節(jié)再做面包屑導(dǎo)航。非常抱歉。 同時(shí),不知道是什么原因,上一節(jié)...

    BWrong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

hedzr

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<