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 相关文章推荐
写一个用户在线显示的程序
Oct 09 PHP
php 分页类 扩展代码
Jun 11 PHP
php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
Oct 22 PHP
php通用防注入程序 推荐
Feb 26 PHP
修改php.ini以达到屏蔽错误信息并记录日志
Jun 16 PHP
php+ajax 实现输入读取数据库显示匹配信息
Oct 08 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
Feb 14 PHP
Yii2简单实现给表单添加验证码的方法
Jul 18 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
Oct 09 PHP
laravel 解决强制跳转 https的问题
Oct 22 PHP
TP5框架实现的数据库备份功能示例
Apr 05 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运行出现Call to undefined function curl_init()的解决方法
2010/11/02 PHP
PHP curl_setopt()函数实例代码与参数分析
2011/06/02 PHP
PHP实现的英文名字全拼随机排号脚本
2014/07/04 PHP
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
2014/08/15 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
2018/12/21 PHP
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
2007/02/09 Javascript
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
2009/12/28 Javascript
jquery插件制作 手风琴Panel效果实现
2012/08/17 Javascript
jquery.messager.js插件导致页面抖动的解决方法
2013/07/14 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
2013/11/21 Javascript
JS实现为表格动态添加标题的方法
2015/03/31 Javascript
js获取元素的标签名实现方法
2016/10/08 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
2018/01/16 Javascript
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
python 将字符串转换成字典dict
2013/03/24 Python
全面了解python字符串和字典
2016/07/07 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
2018/03/22 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
2018/04/19 Python
Python应用库大全总结
2018/05/30 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
2018/09/13 Python
WxPython建立批量录入框窗口
2019/02/27 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
2019/05/05 Python
python批量修改ssh密码的实现
2019/08/08 Python
基于Python把网站域名解析成ip地址
2020/05/25 Python
python调用win32接口进行截图的示例
2020/11/11 Python
python推导式的使用方法实例
2021/02/28 Python
Lookfantastic希腊官网:英国知名美妆购物网站
2018/09/15 全球购物
Petmate品牌官方网站:宠物用品
2018/11/25 全球购物
运动会广播稿500字
2014/01/28 职场文书
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
代理人委托书
2014/08/01 职场文书
爱护公物演讲稿
2014/09/09 职场文书
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python
table设置超出部分隐藏,鼠标移上去显示全部内容的方法
2022/12/24 HTML / CSS