我创建了一个考试结果表,希望显示所有学生的排名,例如1st,2nd,3rd .....,例如他的百分比。我想要这个结果。我正在尝试按百分比获得学生的排名。例如,如果学生1的得分为90.0%,总分100,而学生2的得分为80.5%,总分100。学生1的排名将高于学生2。我想知道如何才能做到这一点?
2 回答
![?](http://img1.sycdn.imooc.com/545845e900013e3e02200220-100-100.jpg)
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
)
)
- 2 回答
- 0 关注
- 130 浏览
添加回答
举报
0/150
提交
取消