第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于排序的問題

關于排序的問題

慕斯王 2019-04-21 20:41:10
現在有一個分類表包含如下字段idparentid父idorder該項在其所處層級的顯示順序,值越小越靠前text內容比如像下邊這樣的數據(text字段內容只是為了方便說明才這么寫,實際內容不是這樣):idparentidordertext10101200231201-241101-153201-2-263101-2-172302-1如何將其排序為(大體是按parentid和order排序)idparentidordertext200272302-11010141101-131201-263101-2-153201-2-2簡單來說就是一個無限分類的子分類排序問題。先按照父子分類排序,再將所有同級分類按照order排序。我目前用的是最笨的方法,就是將每層分類單獨讀取出來(遞歸),排序好后在插入到總數組中,而且目前只測試了對3級分類的支持,但是感覺這種效率好低啊,不知道有沒有什么好的算法,望大神幫忙,或指點一二,做好基于php。
查看完整描述

2 回答

?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

數據結構:為所有頂級分類設置一個虛擬的父分類,然后每個分類有一個指向其已序子分類數組的引用。
排序操作:在每個節(jié)點上執(zhí)行獲取所有子分類并排序后保存到一個數組中的操作。
如果非得要放在同一個數組中,那就在排序完成以后再把結果按順序放到一個數組里。
當然,我還是建議修改讀取數組的方法,讓它能夠解析樹形結構。
                            
查看完整回答
反對 回復 2019-04-21
?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

我有個思路,從數據庫獲取數據時,根據parentid和order排序,orderbyparentidasc,orderasc
獲取到所有數據在到php里一個循環(huán):
foreach($listas$v){
$tmp[$v['parentid']][]=$v;
}
這樣是排好序的,有子集的根節(jié)點
這時候再來一個遞歸,將根節(jié)點加入就行了
                            
查看完整回答
反對 回復 2019-04-21
  • 2 回答
  • 0 關注
  • 349 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號