为了账号安全,请及时绑定邮箱和手机立即绑定

我想在检查结果中显示位置1、2、3

我想在检查结果中显示位置1、2、3

PHP
郎朗坤 2021-05-04 10:42:00
我创建了一个考试结果表,希望显示所有学生的排名,例如1st,2nd,3rd .....,例如他的百分比。我想要这个结果。我正在尝试按百分比获得学生的排名。例如,如果学生1的得分为90.0%,总分100,而学生2的得分为80.5%,总分100。学生1的排名将高于学生2。我想知道如何才能做到这一点?
查看完整描述

2 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

您可以使用array_multisort,array_walk排名记录。例如


$records = [

 0 => ['percentage' => 95],

 1 => ['percentage' => 91],

 2 => ['percentage' => 98],

 3 => ['percentage' => 70]

];

array_multisort(array_column($records, 'percentage'),SORT_DESC,$records);

array_walk($records, function(&$v,$k){

  $v['rank'] = $k + 1;

});

echo '<pre>';

print_r($records);

输出


Array

(

[0] => Array

    (

        [percentage] => 98

        [rank] => 1

    )


[1] => Array

    (

        [percentage] => 95

        [rank] => 2

    )


[2] => Array

    (

        [percentage] => 91

        [rank] => 3

    )


[3] => Array

    (

        [percentage] => 70

        [rank] => 4

    )


)


查看完整回答
反对 回复 2021-05-21
  • 2 回答
  • 0 关注
  • 130 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信