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数据缓存技术
Feb 14 PHP
PHP教程 变量定义
Oct 23 PHP
php 获取全局变量的代码
Apr 21 PHP
求PHP数组最大值,最小值的代码
Oct 31 PHP
ThinkPHP中ajax使用实例教程
Aug 22 PHP
php获取Google机器人访问足迹的方法
Apr 15 PHP
PHP中JSON的应用技巧
Oct 10 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
Nov 27 PHP
PHP 信号管理知识整理汇总
Feb 19 PHP
php获取用户真实IP和防刷机制的实例代码
Nov 28 PHP
PHP PDOStatement::nextRowset讲解
Feb 01 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格式化日期和时间格式化示例分享
2014/02/24 PHP
php生成gif动画的方法
2015/11/05 PHP
javascript数组组合成字符串的脚本
2021/01/06 Javascript
AngularJS实用开发技巧(推荐)
2016/07/13 Javascript
AngularJS教程之环境设置
2016/08/16 Javascript
AngularJS中的DOM操作用法分析
2016/11/04 Javascript
js时间控件只显示年月
2017/01/08 Javascript
浅谈es6语法 (Proxy和Reflect的对比)
2017/10/24 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
微信小程序实现图片上传
2019/05/23 Javascript
使用jquery-easyui的布局layout写后台管理页面的代码详解
2019/06/19 jQuery
javascript canvas检测小球碰撞
2020/04/17 Javascript
[51:26]VP vs VG 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[04:46]2018年度玩家喜爱的电竞媒体-完美盛典
2018/12/16 DOTA
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
Python使用urllib模块的urlopen超时问题解决方法
2014/11/08 Python
Python3中多线程编程的队列运作示例
2015/04/16 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
2017/06/15 Python
200 行python 代码实现 2048 游戏
2018/01/12 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
Sanic框架蓝图用法实例分析
2018/07/17 Python
python getopt模块使用实例解析
2019/12/18 Python
Python lxml模块的基本使用方法分析
2019/12/21 Python
Django ORM filter() 的运用详解
2020/05/14 Python
用CSS3写的模仿iPhone中的返回按钮
2015/04/04 HTML / CSS
详解CSS3的perspective属性设置3D变换距离的方法
2016/05/23 HTML / CSS
Volcom英国官方商店:美国殿堂级滑板、冲浪、滑雪服装品牌
2019/03/13 全球购物
澳大利亚二手奢侈品网站:Modsie
2019/09/23 全球购物
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
Hibernate持久层技术
2013/12/16 面试题
书香校园活动方案
2014/02/28 职场文书
5s推行计划书
2014/05/06 职场文书
商场收银员岗位职责
2015/04/07 职场文书
2015年检验科工作总结
2015/04/27 职场文书
2016庆祝国庆67周年宣传语
2015/11/25 职场文书