2
好吧,這是一個相當複雜的......可以說,我有一個數組名爲$數據通過MULTIPLE嵌套值在PHP中排序和數組?
Array
(
[9e5b0d6d-711c-4cd0-8697-634a5c640066] => Array
(
[player] => 9e5b0d6d-711c-4cd0-8697-634a5c640066
[wins] => 1
[loss] => 6
[winsR] => 2
[lossR] => 12
)
[a8f7fb4c-afab-4ec0-9202-b87fa2641110] => Array
(
[player] => a8f7fb4c-afab-4ec0-9202-b87fa2641110
[wins] => 1
[loss] => 6
[winsR] => 2
[lossR] => 12
)
[96ed2f95-08bd-42f8-bb57-9df09b66109d] => Array
(
[player] => 96ed2f95-08bd-42f8-bb57-9df09b66109d
[wins] => 2
[loss] => 5
[winsR] => 4
[lossR] => 10
)
[2a4e1a3e-cde4-4c9b-947e-67a4d333f0f4] => Array
(
[player] => 2a4e1a3e-cde4-4c9b-947e-67a4d333f0f4
[wins] => 3
[loss] => 4
[winsR] => 6
[lossR] => 8
)
[08c23d63-69a9-4147-b40f-64b241cfbb4f] => Array
(
[player] => 08c23d63-69a9-4147-b40f-64b241cfbb4f
[wins] => 4
[loss] => 3
[winsR] => 8
[lossR] => 6
)
[777e8f3e-caac-41fb-975e-a410e42f7114] => Array
(
[player] => 777e8f3e-caac-41fb-975e-a410e42f7114
[wins] => 5
[loss] => 2
[winsR] => 11
[lossR] => 4
)
[9cd5256f-6d3a-4bd5-aeed-b6904bcbf048] => Array
(
[player] => 9cd5256f-6d3a-4bd5-aeed-b6904bcbf048
[wins] => 6
[loss] => 1
[winsR] => 12
[lossR] => 3
)
[797c95df-c334-4328-a8eb-4ba5e690af4d] => Array
(
[player] => 797c95df-c334-4328-a8eb-4ba5e690af4d
[wins] => 6
[loss] => 1
[winsR] => 12
[lossR] => 2
)
)
正如你所看到的,我有一系列的數據,每個元素都有它自己的嵌套數組。我已經知道我可以使用單個嵌套值對數組進行排序
usort($data, create_function('$a, $b', 'return $b["wins"] - $a["wins"];'));
但是,這還不夠。
問題是,用上面的函數排序對我來說排序不夠深入。它是所有排序基於以下幾點:
- [「勝」]降支(最高勝排序第一)
我想用四個嵌套值進行排序。
- [ '勝']降序(最高勝排序第一)
- [ '損失']升序(最低損耗排序第二)
- [ 'WINSR']降序(最高WINSR排序第三)
- ['lossR'] ASCENDING(最低損失R排序第四)
我知道這很複雜,所以我來這裏尋求幫助。什麼是最好和最有效的方式來做到這一點?
嗯......非常酷......我將如何使用'usort()?我不能確切地做'usort($ data,$ this-> compare_elements)' –
在類環境中,您可能會將其定義爲具有static關鍵字的類作用域函數,並將「MyClass :: compare_ranking_array」稱爲比較器或者你可以使用匿名函數(請參閱http://php.net/manual/en/functions.anonymous.php) – phsource
謝謝...你大人! –