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 相关文章推荐
Smarty安装配置方法
Apr 10 PHP
php实现的发送带附件邮件类实例
Sep 22 PHP
php数组添加元素方法小结
Dec 20 PHP
PHP中异常处理的一些方法整理
Jul 03 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
Dec 22 PHP
PHP Try-catch 语句使用技巧
Feb 28 PHP
深入理解php printf() 输出格式化的字符串
May 23 PHP
基于thinkPHP框架实现留言板的方法
Oct 17 PHP
php中bind_param()函数用法分析
Mar 28 PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
May 13 PHP
Laravel 自定命令以及生成文件的例子
Oct 23 PHP
YII2框架使用控制台命令的方法分析
Mar 18 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
在MongoDB中模拟Auto Increment的php代码
2011/03/06 PHP
php中define用法实例
2015/07/30 PHP
php微信扫码支付 php公众号支付
2019/03/24 PHP
WordPress免插件实现面包屑导航的示例代码
2020/08/20 PHP
Javascript 遍历对象中的子对象
2009/07/03 Javascript
Jquery简单实现GridView行高亮的方法
2015/06/15 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
使用Bootstrap美化按钮实例代码(demo)
2017/02/03 Javascript
Flask中获取小程序Request数据的两种方法
2017/05/12 Javascript
nodejs密码加密中生成随机数的实例代码
2017/07/17 NodeJs
vue+SSM实现验证码功能
2018/12/07 Javascript
layui监听单元格编辑前后交互的例子
2019/09/16 Javascript
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
vue+element 实现商城主题开发的示例代码
2020/03/26 Javascript
react-router-dom 嵌套路由的实现
2020/05/02 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
vue中实现点击空白区域关闭弹窗的两种方法
2020/12/30 Vue.js
python比较两个列表大小的方法
2015/07/11 Python
Python常用的爬虫技巧总结
2016/03/28 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
python3 爬取图片的实例代码
2018/11/06 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
2019/06/03 Python
详解python实现交叉验证法与留出法
2019/07/11 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
2019/07/22 Python
使用python远程操作linux过程解析
2019/12/04 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
加拿大当代时尚服饰、配饰和鞋类专业零售商和制造商:LE CHÂTEAU
2017/10/06 全球购物
波兰最大的电商平台:Allegro.pl
2021/02/06 全球购物
C#可否对内存进行直接的操作
2015/02/26 面试题
最新大学生自我评价
2013/09/24 职场文书
自动一体化专业求职信
2014/03/15 职场文书
自习课吵闹检讨书范文
2014/09/26 职场文书
法人身份证明书
2015/06/18 职场文书
同意落户证明
2015/06/19 职场文书
你真的了解redis为什么要提供pipeline功能
2021/06/22 Redis
关于Python使用turtle库画任意图的问题
2022/04/01 Python