<?php
// Raw data
$json = <<<'JSON'
{
"player1": {
"money": 1000,
"kills": 6
},
"player2": {
"money": 3000,
"kills": 12
},
"player3": {
"money": 2000,
"kills": 2
}
}
JSON;
// Prepare
$sortBy = 'money';
$order = 'desc';
$dataset = json_decode($json, true);
// Sorting
uasort($dataset, fn (array $playerA, array $playerB): int => ($playerA['money'] > $playerB['money'] ? -1 : 1) * ['desc' => 1, 'asc' => -1][$order] ?? -1);
// Print results
var_dump($dataset);
$i = 1;
foreach($dataset as $player => $data)
{
echo "#$i: $player (\${$data['money']})" . PHP_EOL;
$i ++;
}
- Output for 8.1.0 - 8.1.28, 8.2.10 - 8.2.18, 8.3.0 - 8.3.6
- array(3) {
["player2"]=>
array(2) {
["money"]=>
int(3000)
["kills"]=>
int(12)
}
["player3"]=>
array(2) {
["money"]=>
int(2000)
["kills"]=>
int(2)
}
["player1"]=>
array(2) {
["money"]=>
int(1000)
["kills"]=>
int(6)
}
}
#1: player2 ($3000)
#2: player3 ($2000)
#3: player1 ($1000)
preferences:
74.06 ms | 402 KiB | 28 Q