Ordinare un array multidimensionale per le chiavi del sottoarray
<?php
$list = [
'one' => [
'positive' => 3,
'negative' => 2
],
'two' => [
'positive' => 1,
'negative' => 0
],
'three' => [
'positive' => 5,
'negative' => 0
],
'four' => [
'positive' => 4,
'negative' => 5
],
'five' => [
'positive' => 6,
'negative' => 2
],
];
foreach ($list as $key => $value) {
$list[$key]['score'] = $value['positive'] - $value['negative'];
}
foreach ($list as $key => $value) {
$score[$key] = $value['score'];
$positive[$key] = $value['positive'];
$negative[$key] = $value['negative'];
}
array_multisort(
$score, SORT_DESC,
$positive, SORT_DESC,
$negative, SORT_ASC,
$list
);
echo '<pre>'.print_r($list, 1).'</pre>';Last updated