用PHP如何实现分数排名,有什么好的思路?
对学生成绩做一个排名,分数为一个数组,排好名次后输出排名结果:
比如 $scores = array(90,100,100)
; 自定义函数实现返回数组 $rank(3,1,1)
;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
对学生成绩做一个排名,分数为一个数组,排好名次后输出排名结果:
比如 $scores = array(90,100,100)
; 自定义函数实现返回数组 $rank(3,1,1)
;
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
<?php
?>
这个能满足你的需求,但是我有一个问题, 两个并列第一,考99那位不应该是第二名么
题主想要的是按原数组顺序显示的排名(可并列)。大体思路是将原数组补充上位置信息,然后按照排序的结果反向构建排名数组。写出来比较啰嗦:
注意如果有多个并列第n,下一个人将是第n+1名,这点与题主给出例子有点不同。整个算法的复杂度瓶颈还是排序,即O(n lgn)。
用php本身的数组排序函数?
先按分数给这个数组排序,然后将这个数组 revsert。然后按照分数取 key 就好了。
另外:你的分数不写在数据库里,这样拿出来本来就是有顺序的啊