J'ai un multi-gamme comme ceci:deux tableaux usort PHP: d'abord par valeur, seconde par clé basée sur le premier tableau pour
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
)
)
je dois trier player1
par son value
, puis trier player2
avec la même key
ordre.
J'ai besoin ceci:
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
)
)
Vous pouvez voir comment player1
est commandé par ses valeurs, player2
est commandée par player1
commande clés.
Je possède ce code pour commander player1
usort ($my_array, 'sortByOrder');
function sortByOrder($a, $b) {
if ($a['player1'] < $b['player1'])
return 1;
}
Puis-je obtenir ce résultat:
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
)
)
Je lâche player1
clés, je ne peux pas faire une boucle à l'ordre player2
comme player1
clés .
Des idées?
http://php.net/manual/en/array.sorting.php - vous montre que 'usort' ne maintient pas les clés, vous avez besoin de 'uasort' – billyonecan