PHP 板


LINE

看板 PHP  RSS
假設我目前有一個陣列如下 array( ["AssetsAbstract"]=> array { ["label"]=>"AssetsAbstract", ["belong"]=>"BalanceSheet", ["order"]=>"1.0" } ["BalanceSheet"]=> array { ["label"]=>"BalanceSheet" } ["OtherFinancialAssetsCurrent"]=> array { ["label"]=>"OtherFinancialAssetsCurrent", ["belong"]=>"CurrentAssetsAbstract", ["order"]=>"14.0" } ["CurrentAssetsAbstract"]=> array { ["label"]=>"CurrentAssetsAbstract", ["belong"]=>"AssetsAbstract", ["order"]=>"1.0" } ["HedgingDerivativeAssetsCurrent"]=> array { ["label"]=>"HedgingDerivativeAssetsCurrent", ["belong"]=>"CurrentAssetsAbstract", ["order"]=>"5.0" } ) 陣列中每一個元素的belong指定了從屬性,說明屬於哪一個母元素 order指定了當有多個元素隸屬於同一個母元素時,其各個子元素排列順序為何 沒有belong時,則原則上相對不主動變動他在陣列中的位置 我想要讓他排序之後可以變成這樣的順序: array( ["BalanceSheet"]=> array { ["label"]=>"BalanceSheet" } ["AssetsAbstract"]=> array { ["label"]=>"AssetsAbstract", ["belong"]=>"BalanceSheet", ["order"]=>"1.0" } ["CurrentAssetsAbstract"]=> array { ["label"]=>"CurrentAssetsAbstract", ["belong"]=>"AssetsAbstract", ["order"]=>"1.0" } ["HedgingDerivativeAssetsCurrent"]=> array { ["label"]=>"HedgingDerivativeAssetsCurrent", ["belong"]=>"CurrentAssetsAbstract", ["order"]=>"5.0" } ["OtherFinancialAssetsCurrent"]=> array { ["label"]=>"OtherFinancialAssetsCurrent", ["belong"]=>"CurrentAssetsAbstract", ["order"]=>"14.0" } ) 即依據belong和order 把子元素放在所屬母元素後面 請各位高手指點一下方向… 我想破頭都想不出來怎麼搞… 之所以會有這個問題是因為會計科目的問題 我自己嘗試使用quicksort如下,還是沒辦法順利排出來: function quicksort($arr) { if(!isset($arr[2])) { return $arr; } $piv = $arr[0]; $x = $y = array(); $len = count($arr); $i = 1; while($i < $len) { if( $arr[$i]['belong'] == $piv['label'] ) { $y[] = $arr[$i]; } else { $x[] = $arr[$i]; } ++$i; } return array_merge(quicksort($x), array($piv), quicksort($y)); } 如蒙解惑,不勝感激! --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.46.151.251 ※ 編輯: dowbatw 來自: 114.46.151.251 (12/31 01:32) ※ 編輯: dowbatw 來自: 114.46.151.251 (12/31 01:40)
1F:→ dowbatw:今天徹夜用了quicksort還是排不出來… 12/31 10:14
※ 編輯: dowbatw 來自: 114.46.118.220 (12/31 10:35)
2F:推 kuAIpAI:你要不要考慮再說清楚點~ 哈哈 我不太懂需求 12/31 11:24
3F:→ kuAIpAI:是要用 ORDER 數字大小作排序? 12/31 11:24
4F:→ dowbatw:謝謝,我想說得更清楚應該是「關聯」「從屬」等…這樣應該 12/31 12:09
5F:→ dowbatw:可以了吧? 12/31 12:09
6F:→ dowbatw:「樹狀結構」 12/31 12:10
7F:→ MOONRAKER:這不是排序…照我看取出來再依序塞回新陣列比較快。 12/31 12:48
8F:→ kuAIpAI:你要不要考慮 將資訊弄成 ABC 這種一看就懂得~ 12/31 14:01
9F:→ kuAIpAI:然後 再用相同方式說 你想排成怎樣~ 哈哈 12/31 14:02
10F:→ kuAIpAI:或許比較幫助 我們了解你想要的 12/31 14:02
想不到我的文意有這麼難理解…… 節錄資產負債表如下圖 資產負債表   資產    流動資產     其他金融資產-流動     存貨      存貨-製造業       存貨-製造業淨額      存貨合計     其他流動資產      遞延所得稅資產-流動      受限制資產      其他流動資產-其他      其他流動資產合計 假設一個科目就是一個項目 我所得到的資料裏面可以知道任一個項目的從屬性 例如「受限制資產」屬於「其他流動資產」 (即根據前文所述的belong值) 又「其他流動資產」的所有子項目中, 「受限制資產」排在「其他流動資產-其他」前面 在「流動資產」的所有子項目中, 「存貨」排在「其他流動資產」前面 (即根據前文所述order值) 我現在只能得到各個項目的資料(在一個陣列中) 要如何重新依照上面所說的從屬關係以及先後順序關係 重新排列陣列 這就是我的問題,謝謝各位了! ※ 編輯: dowbatw 來自: 114.46.118.220 (12/31 14:17) ※ 編輯: dowbatw 來自: 114.46.118.220 (12/31 14:19)
11F:→ bmyone:項目固定,每個項目給個sort key就可以了 12/31 21:17
13F:→ guardlan:你是要做像這樣的表? 12/31 22:09
14F:→ dowbatw:請教bmyone前輩的微言大意 12/31 23:33







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:e-shopping站內搜尋

TOP