www.adminn.cn
站长正能量分享网!

php实现excel中rank函数功能的方法

AD:阿里云服务器企业会员更优惠 腾讯云香港,韩国免备案服务器1.8折优惠
QQ站长交流群2:783203806 交流群1: 783203806 不定期拼团福利源码

这篇文章主要介绍了php实现excel中rank函数功能的方法,较为详细的分析了rank函数的功能及具体实现方法,需要的朋友可以参考下

本文实例讲述了php实现excel中rank函数功能的方法。分享给大家供大家参考。具体分析如下:

sql语句实现排名是像这样的如:

总分成绩为 195,180,180,161,名次分别为1,2,3,4,遇到并列的情况也是按照顺序的,而Excel函数rank排名得到的结果是1,2,2,4,遇到并列跳过中间的3

下面的函数模拟的就是这种情况

函数如下(不知道有没有更好的实现方法):

公式为: 名次=总人数–比自己小的数的个数-这个分数重复次数+1(加上自己)

得到名次的数组再根据对应的id写入到数据库,就实现rank的计算功能

(当然这个也可以改成这样195,180,180,165,名次是这样的1,2,2,3)代码如下:

  1. //获得一组数的名次的数组 
  2. function rank(array $array){ 
  3.         foreach($array as $val){ 
  4.                 $repeat=get_array_repeats($val,$array); 
  5.                 $num=gt_array_values($val,$array); 
  6.                 $rank[]=count($array)-$num$repeat+1; 
  7.         } 
  8.         return $rank
  9. //获得比自己数小的个数 
  10. function gt_array_values($val,array $array){ 
  11.         $num=0; 
  12.         for($i=0;$i<count($array);$i++){ 
  13.                 if($val>$array[$i]){ 
  14.                         $num++; 
  15.                 } 
  16.         } 
  17.         return $num
  18. //获得这个数的重复次数 
  19.  
  20. function get_array_repeats($string,array $array) { 
  21.         $count = array_count_values($array); 
  22.         foreach ($count as $key => $value) { 
  23.                  if ($key == $string) { 
  24.                   return $value
  25.                   } 
  26.          } 
  27. }

模板优惠价: (点击购买)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《php实现excel中rank函数功能的方法》
文章链接:https://www.adminn.cn/news/32337.html
本站资源模板仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。2021.5月起,网站调整,暂不再分享免费模板。谢谢理解

Adminn.Cn 站长分享圈

帝国CMS精品模板腾讯云优惠券,代金券

喜欢本模板用于2次开发,学习研究使用!

支付宝扫一扫打赏