Сортировать массив по убыванию чисел

Я получил результаты теста, который я сделал, и результаты в количестве (всего: 44/33/22/11, где A = 11, B = 44, C = 33, D = 22, например) Я хочу, чтобы результаты были напечатаны на экране по убыванию, поэтому сначала самый высокий (44), а затем второй, третий, а затем самый низкий (11).
Получил работу (опубликовал еще один пост час назад, и кто-то помог мне)
Проблема у меня есть еще 2 параметра.

например:

А — 40 — 90
Б — 29 — 91
С — 55 — 92
Д — 90 — 93

Теперь я хочу, чтобы он отображался на экране как D / C / A / B по убыванию по второму параметру (% в процентах (90/55/29/40)

Код:

               $percentA = $totalA * 4;
$percentB = $totalB * 4;
$percentC = $totalC * 4;
$percentD = $totalD * 4;

$letters    = ['A', 'B', 'C', 'D'];
$temp_array = [];

$results = array(
'A' => ['percent' => $percentA, 'value'=>'90'],
'B' => ['percent' => $percentB, 'value'=>'91'],
'C' => ['percent' => $percentC, 'value'=>'92'],
'D' => ['percent' => $percentD, 'value'=>'93']
);
//rsort($results);
for($i = 0; $i < count($results); $i++) {
$name    = $letters[$i];
$percent = $results[$letters[$i]]['percent'];
$value   = $results[$letters[$i]]['value'];

$new_array = ['name' => $name, 'percent' => $percent ,'value'=>$value];

array_push($temp_array, $new_array);
}

Сортирует, но сортирует по ключу массива (3/2/1/0), который я хочу отсортировать по процентам (20/20/30/40, например)

                krsort($temp_array);foreach ($temp_array as $key => $val) {
}

1

Решение

Используйте usort:

usort($yourArray, function($a, $b) {
if ($a['value'] == $b['value']) {
return 0;
}
return ($a['value'] < $b['value']) ? -1 : 1;
});
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]