我有一个多阵列是这样的:PHP usort两个阵列:首先由值,第二通过键基于第一阵列顺序
Array
(
['player1'] => Array (
['a'] => 112
['b'] => 234
['c'] => 511
['d'] => 323
['e'] => 456
['f'] => 324
)
['player2'] => Array (
['a'] => 545
['b'] => 434
['c'] => 158
['d'] => 053
['e'] => 982
['f'] => 111
)
)
我需要由他value
排序player1
,然后排序player2
用相同key
订单。
我需要这样的:
Array
(
['player1'] => Array (
['a'] => 112
['b'] => 234
['d'] => 323
['f'] => 324
['e'] => 456
['c'] => 511
)
['player2'] => Array (
['a'] => 545
['b'] => 434
['d'] => 053
['f'] => 111
['e'] => 982
['c'] => 158
)
)
你可以看到如何player1
是由他的值排序,然后player2
由player1
键顺序进行排序。
我有这样的代码来订购player1
usort ($my_array, 'sortByOrder');
function sortByOrder($a, $b) {
if ($a['player1'] < $b['player1'])
return 1;
}
然后我得到这样的结果:
Array
(
['player1'] => Array (
['0'] => 112
['1'] => 234
['2'] => 323
['3'] => 324
['4'] => 456
['5'] => 511
)
['player2'] => Array (
['a'] => 545
['b'] => 434
['c'] => 158
['d'] => 053
['e'] => 982
['f'] => 111
)
)
我松player1
钥匙,所以我不能让一个循环订购player2
为player1
键。
任何想法?
http://php.net/manual/en/array.sorting.php - 显示你'usort'不保持键,你需要'uasort' – billyonecan