按数字降序对数组进行排序


Sort array with numbers descending

我从我做的测验中得到了结果,结果是数字的(总数:44/33/22/11,例如a=11,B=44,C=33,D=22)我希望在屏幕上打印结果,所以先是最高的(44),然后是第二、第三,然后是最低的(11)。成功了(一小时前又发了一篇帖子,有人帮了我)问题是,我还有两个参数。

例如:

A-40-90B-29-91C-55-92D-90-93

现在我希望它在屏幕上显示为D/C/A/B下降第二个参数($percent(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)我想按百分比排序(例如10/20/30/40)

                krsort($temp_array);

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

使用usort:

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