問題描述
我有一個巨大的數組,我是從 BattleField Bad Company 2 的 API 中提取的,士兵統計數據可以作為一個多維數組提取,每個士兵都有一個內部數組,但是 API 將士兵排序按字母順序命名,我想按等級對它們進行排序(這只是該士兵數組中的另一個鍵).幾天來我一直在努力解決這個問題,有人有任何想法嗎?(即按 $arr[players][][rank]
對數組進行排序這里有一些數組
<前>大批([玩家] => 數組([0] => 數組([名稱] => bigjay517[排名] => 29[rank_name] => II 少尉[老兵] => 0[得分] => 979440[級別] => 169[殺死] => 4134[死亡人數] => 3813[時間] => 292457.42[elo] => 319.297[形式] => 1[date_lastupdate] => 2010-03-30T14:06:20+02:00[count_updates] => 13[通用] => 數組([準確度] => 0.332[狗] => 86[狗] => 166[elo0] => 309.104[elo1] => 230.849[游戲] => 384[黃金版] => 0[損失] => 161[sc_assault] => 146333[sc_award] => 567190[sc_bonus] => 35305[sc_demo] => 96961[sc_general] => 264700[sc_objective] => 54740[sc_recon] => 54202[sc_squad] => 53210[sc_support] => 70194[sc_team] => 21215[sc_vehicle] => 44560[等級] => 0[spm] => 0[spm0] => 0[spm1] => 0[srank] => 0[資深] => 0[團隊殺戮] => 67[udogt] => 0[獲勝] => 223)除了其他答案,如果您需要按動態字段排序(僅在運行時已知),您可以使用匿名函數并將其傳遞給字段通過 use
關鍵字:
$field = "some_dynamic_value";usort($rows, function($a, $b) use ($field) {返回 strcmp($a[$field], $b[$field]);});
i have this enormous array that i am pulling from an API for BattleField Bad Company 2, and the soldier stats can be pulled as a multi dimensional array with an inner array for each soldier, however the API sormats it sorting the soldiers by name alphabetically, i want to sort them by rank (which is just another key within that soldiers array). ive been trying to figure this out for days, anyone have any ideas? (ie sort the array by $arr[players][][rank]
here is a bit of the array
Array ( [players] => Array ( [0] => Array ( [name] => bigjay517 [rank] => 29 [rank_name] => SECOND LIEUTENANT II [veteran] => 0 [score] => 979440 [level] => 169 [kills] => 4134 [deaths] => 3813 [time] => 292457.42 [elo] => 319.297 [form] => 1 [date_lastupdate] => 2010-03-30T14:06:20+02:00 [count_updates] => 13 [general] => Array ( [accuracy] => 0.332 [dogr] => 86 [dogt] => 166 [elo0] => 309.104 [elo1] => 230.849 [games] => 384 [goldedition] => 0 [losses] => 161 [sc_assault] => 146333 [sc_award] => 567190 [sc_bonus] => 35305 [sc_demo] => 96961 [sc_general] => 264700 [sc_objective] => 54740 [sc_recon] => 54202 [sc_squad] => 53210 [sc_support] => 70194 [sc_team] => 21215 [sc_vehicle] => 44560 [slevel] => 0 [spm] => 0 [spm0] => 0 [spm1] => 0 [srank] => 0 [sveteran] => 0 [teamkills] => 67 [udogt] => 0 [wins] => 223 )
In addition to the other answers, if you need to sort by a dynamic field (only known at runtime), you can use an anonymous function and pass it the field via the use
keyword:
$field = "some_dynamic_value";
usort($rows, function($a, $b) use ($field) {
return strcmp($a[$field], $b[$field]);
});
這篇關于如何通過內部鍵對多維數組進行排序的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!