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加密解密的代码
Oct 09 PHP
PHP写入WRITE编码为UTF8的文件的实现代码
Jul 07 PHP
PHP笔记之:日期函数的使用介绍
Apr 24 PHP
PHP APC的安装与使用详解
Jun 13 PHP
邮箱正则表达式实现代码(针对php)
Jun 21 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
Jun 30 PHP
如何让搜索引擎抓取AJAX内容解决方案
Aug 25 PHP
php绘制一个扇形的方法
Jan 24 PHP
php修改上传图片尺寸的方法
Apr 14 PHP
php中preg_replace_callback函数简单用法示例
Jul 21 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
Aug 21 PHP
laravel7学习之无限级分类的最新实现方法
Sep 30 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
3个PHP多维数组转为一维数组的方法实例
2014/03/13 PHP
PHP截取指定图片大小的方法
2014/12/10 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器
2013/12/12 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
2014/06/15 Javascript
Javascript基础知识(三)BOM,DOM总结
2014/09/29 Javascript
JavaScript实现的双向跨域插件分享
2015/01/31 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
JavaScript动态改变div属性的实现方法
2015/07/22 Javascript
javascript和jquery实现用户登录验证
2016/05/04 Javascript
AngularJs 国际化(I18n/L10n)详解
2016/09/01 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
2016/11/30 Javascript
Angular企业级开发——MVC之控制器详解
2017/02/20 Javascript
JS判断时间段的实现代码
2017/06/14 Javascript
微信小程序实现联动选择器
2019/02/15 Javascript
ES6基础之默认参数值
2019/02/21 Javascript
vue组件化中slot的基本使用方法
2019/05/01 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
2019/09/20 Javascript
python字符串加密解密的三种方法分享(base64 win32com)
2014/01/19 Python
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
使用rst2pdf实现将sphinx生成PDF
2016/06/07 Python
Python正则表达式教程之二:捕获篇
2017/03/02 Python
Python中easy_install 和 pip 的安装及使用
2017/06/05 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
Django uwsgi Nginx 的生产环境部署详解
2019/02/02 Python
python根据文章标题内容自动生成摘要的实例
2019/02/21 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
2020/02/07 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
2020/07/02 Python
Html5基于canvas实现电子签名并生成PDF文档
2020/12/07 HTML / CSS
京东全球售:直邮香港,澳门,台湾,美国,澳大利亚等地区
2017/09/24 全球购物
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
编写类String 的构造函数、析构函数和赋值函数
2012/09/09 面试题
环境工程大学生个人的自我评价
2013/10/08 职场文书
预备党员转正思想汇报
2014/01/12 职场文书
社区低保工作总结2015
2015/07/23 职场文书