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 相关文章推荐
解决phpmyadmin 乱码,支持gb2312和utf-8
Nov 20 PHP
php完全过滤HTML,JS,CSS等标签
Jan 16 PHP
PHP输出时间差函数代码
Jan 28 PHP
php curl post 时出现的问题解决
Jan 30 PHP
thinkphp的静态缓存用法分析
Nov 29 PHP
ThinkPHP中redirect用法分析
Dec 05 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
Jan 05 PHP
CI框架表单验证实例详解
Nov 21 PHP
PHP实现ASCII码与字符串相互转换的方法
Apr 29 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
Jun 09 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
Apr 20 PHP
thinkphp5 redis缓存新增方法实例讲解
Mar 24 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如何调用webservice应用介绍
2012/11/24 PHP
CodeIgniter启用缓存和清除缓存的方法
2014/06/12 PHP
初窥JQuery(二)事件机制(2)
2010/12/06 Javascript
JavaScript 用cloneNode方法克隆节点的代码
2012/10/15 Javascript
jquery对单选框,多选框,文本框等常见操作小结
2014/01/08 Javascript
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
jquery.form.js用法之清空form的方法
2014/03/07 Javascript
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
javascript生成大小写字母
2015/07/03 Javascript
JavaScript如何禁止Backspace键
2015/12/02 Javascript
JavaScript缓冲运动实现方法(2则示例)
2016/01/08 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
2016/02/29 Javascript
使用jQuery处理AJAX请求的基础学习教程
2016/05/10 Javascript
基于BootStrap环境写jQuery tabs插件
2016/07/12 Javascript
Vue获取DOM元素样式和样式更改示例
2017/03/07 Javascript
关于jquery form表单序列化的注意事项详解
2017/08/01 jQuery
nuxt+axios解决前后端分离SSR的示例代码
2017/10/24 Javascript
webpack实践之DLLPlugin 和 DLLReferencePlugin的使用教程
2019/06/10 Javascript
在vue中使用jsx语法的使用方法
2019/09/30 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
跟老齐学Python之不要红头文件(2)
2014/09/28 Python
python中的__slots__使用示例
2015/02/26 Python
Python函数可变参数定义及其参数传递方式实例详解
2015/05/25 Python
Python修改文件往指定行插入内容的实例
2019/01/30 Python
Python 堆叠柱状图绘制方法
2019/07/29 Python
python实现提取str字符串/json中多级目录下的某个值
2020/02/27 Python
Python中求对数方法总结
2020/03/10 Python
接口自动化多层嵌套json数据处理代码实例
2020/11/20 Python
CSS3 透明色 RGBA使用介绍
2013/08/06 HTML / CSS
详解HTML5中表单验证的8种方法介绍
2016/12/19 HTML / CSS
Spartoo美国:欧洲排名第一的在线时装零售商
2019/12/12 全球购物
罗技美国官网:Logitech美国
2020/01/22 全球购物
澳大利亚最受欢迎的超级商场每日优惠:Catch
2020/11/17 全球购物
小学生国庆节演讲稿
2014/09/05 职场文书
古诗文之爱国名句(77句)
2019/09/24 职场文书
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技