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

 更新时间:2015年01月20日 16:10:12   投稿:shichen2014  
这篇文章主要介绍了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)

复制代码 代码如下:
//获得一组数的名次的数组
function rank(array $array){
        foreach($array as $val){
                $repeat=get_array_repeats($val,$array);
                $num=gt_array_values($val,$array);
                $rank[]=count($array)-$num-$repeat+1;
        }
        return $rank;
}

//获得比自己数小的个数
function gt_array_values($val,array $array){
        $num=0;
        for($i=0;$i<count($array);$i++){
                if($val>$array[$i]){
                        $num++;
                }
        }
        return $num;
}
//获得这个数的重复次数

function get_array_repeats($string,array $array) {
        $count = array_count_values($array);
        foreach ($count as $key => $value) {
                 if ($key == $string) {
                  return $value;
                  }
         }
}

希望本文所述对大家的php程序设计有所帮助。

相关文章

  • php strrpos()与strripos()函数

    php strrpos()与strripos()函数

    以下是对php中的strrpos函数与strripos函数的用法进行了详细的介绍,需要的朋友可以过来参考下
    2013-08-08
  • PHP基于openssl实现的非对称加密操作示例

    PHP基于openssl实现的非对称加密操作示例

    这篇文章主要介绍了PHP基于openssl实现的非对称加密操作,结合实例形式分析了openssl安装、密钥生成及php基于openssl的非对称加密算法相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • php防注入,表单提交值转义的实现详解

    php防注入,表单提交值转义的实现详解

    本篇文章是对php防注入,表单提交值转义的实现进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP中创建和验证哈希的简单方法实探

    PHP中创建和验证哈希的简单方法实探

    这篇文章主要介绍了PHP中创建和验证哈希的简单方法,即为Password Hashing API的使用介绍,需要的朋友可以参考下
    2015-07-07
  • PHP正则表达式处理函数(PCRE 函数)实例小结

    PHP正则表达式处理函数(PCRE 函数)实例小结

    这篇文章主要介绍了PHP正则表达式处理函数(PCRE 函数),结合实例形式总结分析了php正则表达式preg_replace、preg_match、preg_match_all、preg_split及preg_quote等函数相关使用技巧,需要的朋友可以参考下
    2019-05-05
  • PHP守护进程的两种常见实现方式详解

    PHP守护进程的两种常见实现方式详解

    这篇文章主要介绍了PHP守护进程的两种常见实现方式,结合具体实例形式分析了php守护进程的原理与相关实现方法与操作注意事项,需要的朋友可以参考下
    2017-09-09
  • PHP使用静态方法的几个注意事项

    PHP使用静态方法的几个注意事项

    这篇文章主要介绍了PHP使用静态方法的几个注意事项,以实例的形式讲述了PHP静态方法调用的技巧和易错点分析,需要的朋友可以参考下
    2014-09-09
  • PHP读取txt文本文件并分页显示的方法

    PHP读取txt文本文件并分页显示的方法

    这篇文章主要介绍了PHP读取txt文本文件并分页显示的方法,涉及php操作文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 利用PHP内置SERVER开启web服务(本地开发使用)

    利用PHP内置SERVER开启web服务(本地开发使用)

    PHP 5.4.0起, CLI SAPI 提供了一个内置的Web服务器,这个内置的Web服务器主要用于本地开发使用,不可用于线上产品环境,URI请求会被发送到PHP所在的的工作目录Working Directory进行处理,除非你使用了-t参数来自定义不同的目录
    2020-01-01
  • php中Array2xml类实现数组转化成XML实例

    php中Array2xml类实现数组转化成XML实例

    这篇文章主要介绍了php中Array2xml类实现数组转化成XML的方法,实例分析了数组转化成XML实现类Array2xml,是非常实用的数组转化技巧,需要的朋友可以参考下
    2014-12-12

最新评论