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


Posted in PHP onJanuary 20, 2015

本文实例讲述了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 相关文章推荐
php中使用explode查找某个字符是否存在的方法
Jul 12 PHP
php在服务器执行exec命令失败的解决方法
Mar 03 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
May 07 PHP
深入PHP数据缓存的使用说明
May 10 PHP
php解压文件代码实现php在线解压
Feb 13 PHP
php页码形式分页函数支持静态化地址及ajax分页
Mar 28 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
Jun 12 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
Jul 08 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
Jul 29 PHP
深入理解PHP之OpCode原理详解
Jun 01 PHP
值得分享的php+ajax实时聊天室
Jul 20 PHP
静态html文件执行php语句的方法(推荐)
Nov 21 PHP
PHP中error_log()函数的使用方法
Jan 20 #PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
Jan 20 #PHP
php中解析带中文字符的url函数分享
Jan 20 #PHP
PHP中使用正则表达式提取中文实现笔记
Jan 20 #PHP
php中的观察者模式简单实例
Jan 20 #PHP
php 5.6版本中编写一个PHP扩展的简单示例
Jan 20 #PHP
PHP函数extension_loaded()用法实例
Jan 19 #PHP
You might like
修改php.ini实现Mysql导入数据库文件最大限制的修改方法
2007/12/11 PHP
php文件上传简单实现方法
2015/01/24 PHP
PHP Warning: Module 'modulename' already loaded in问题解决办法
2015/03/16 PHP
php把大写命名转换成下划线分割命名
2015/04/27 PHP
js类的静态属性和实例属性的理解
2009/10/01 Javascript
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
javascript时间函数基础介绍
2013/03/28 Javascript
js设置cookie过期及清除浏览器对应名称的cookie
2013/10/24 Javascript
js中的事件捕捉模型与冒泡模型实例分析
2015/01/10 Javascript
JavaScript实现Flash炫光波动特效
2015/05/14 Javascript
Javascript 高阶函数使用介绍
2015/06/15 Javascript
详细探究ES6之Proxy代理
2016/07/22 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
快速理解 JavaScript 中的 LHS 和 RHS 查询的用法
2017/08/24 Javascript
轻松理解vue的双向数据绑定问题
2017/10/30 Javascript
Angularjs实现多图片上传预览功能
2018/07/18 Javascript
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
vue-cli 打包后提交到线上出现 &quot;Uncaught SyntaxError:Unexpected token&quot; 报错
2018/11/06 Javascript
微信小程序实现日历功能
2018/11/27 Javascript
three.js实现炫酷的全景3D重力感应
2018/12/30 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
用python删除java文件头上版权信息的方法
2014/07/31 Python
python安装scipy的方法步骤
2019/06/26 Python
如何基于pythonnet调用halcon脚本
2020/01/20 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
2020/12/01 Python
甜点店创业计划书
2014/01/27 职场文书
2014年村党支部工作总结
2014/12/04 职场文书
新郎新娘答谢词
2015/01/04 职场文书
营销计划书
2015/01/17 职场文书
2015共产党员公开承诺书
2015/01/22 职场文书
疾病证明书
2015/06/19 职场文书
导游词之无锡古运河
2019/11/14 职场文书
详解TS数字分隔符和更严格的类属性检查
2021/05/06 Javascript
table不让td文字溢出操作方法
2022/12/24 HTML / CSS