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 相关文章推荐
在apache下限制每个虚拟主机的并发数!!!!
Oct 09 PHP
用PHP产生动态的影像图
Oct 09 PHP
用PHP生成html分页列表的代码
Mar 18 PHP
php下HTTP Response中的Chunked编码实现方法
Nov 19 PHP
php 连接mysql连接被重置的解决方法
Feb 15 PHP
php中取得文件的后缀名?
Feb 20 PHP
php中数组首字符过滤功能代码
Jul 31 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
Jun 23 PHP
thinkphp在模型中自动完成session赋值示例代码
Sep 09 PHP
PHP中定义数组常量(array常量)的方法
Nov 17 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
Sep 11 PHP
利用php生成验证码
Feb 23 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 事件机制(2)
2011/03/23 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
ajax 的post方法实例(带循环)
2011/07/04 PHP
PHP中使用memcache存储session的三种配置方法
2014/04/05 PHP
php通过递归方式复制目录和子目录的方法
2015/03/13 PHP
JavaScript的变量作用域深入理解
2009/10/25 Javascript
javascript 用原型继承来实现对象系统
2010/03/22 Javascript
JQuery中ajax方法访问web服务实例
2015/07/18 Javascript
JS简单实现无缝滚动效果实例
2016/08/24 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
Bootstrap笔记—折叠实例代码
2017/03/13 Javascript
浅谈 Vue v-model指令的实现原理
2017/06/08 Javascript
老生常谈Bootstrap媒体对象
2017/07/06 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
2018/08/09 Javascript
Vue绑定内联样式问题
2018/10/17 Javascript
使用webpack搭建vue项目及注意事项
2019/06/10 Javascript
[01:01:42]Secret vs Optic Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
将Python中的数据存储到系统本地的简单方法
2015/04/11 Python
举例讲解Linux系统下Python调用系统Shell的方法
2015/11/07 Python
Python如何获取系统iops示例代码
2016/09/06 Python
分享给Python新手们的几道简单练习题
2017/09/21 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
HTML5实现多张图片上传功能
2016/03/11 HTML / CSS
Ben Sherman官方网站:英国男装品牌
2019/10/22 全球购物
迎接领导欢迎词
2014/01/11 职场文书
高考标语大全
2014/06/05 职场文书
先进事迹演讲稿
2014/09/01 职场文书
教师群众路线学习心得体会
2014/11/04 职场文书
2015年见习期工作总结
2014/12/12 职场文书
幼儿园中班教师个人工作总结
2015/02/06 职场文书
房屋租赁意向书范本
2015/05/09 职场文书
2016学习医德医风心得体会
2016/01/25 职场文书
导游词书写之黄山
2019/08/06 职场文书
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python
win10忘记pin密码登录不了怎么办?win10忘记pin密码登不进去的解决方法
2022/07/07 数码科技