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动态变静态原理
Nov 25 PHP
php面向对象全攻略 (七) 继承性
Sep 30 PHP
在wamp集成环境下升级php版本(实现方法)
Jul 01 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
Nov 25 PHP
php实现改变图片直接打开为下载的方法
Apr 14 PHP
PHP获取网页所有连接的方法(附demo源码下载)
Mar 30 PHP
Yii 2.0如何使用页面缓存方法示例
May 23 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
May 09 PHP
php 多继承的几种常见实现方法示例
Nov 18 PHP
php使用fputcsv实现大数据的导出操作详解
Feb 27 PHP
PHP正则表达式函数preg_replace用法实例分析
Jun 04 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实现用户认证及管理完全源码
2007/03/11 PHP
smarty中post用法实例
2014/11/28 PHP
php中array_unshift()修改数组key注意事项分析
2016/05/16 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
Nigma vs Liquid BO3 第二场2.14
2021/03/10 DOTA
Js 弹出框口并返回值的两种常用方法
2010/12/30 Javascript
九种原生js动画效果
2015/11/11 Javascript
JavaScript中 ES6 generator数据类型详解
2016/08/11 Javascript
jQuery插件WebUploader实现文件上传
2016/11/07 Javascript
Vue.js学习教程之列表渲染详解
2017/05/17 Javascript
Vue keep-alive实践总结(推荐)
2017/08/31 Javascript
JS实现点击链接切换显示隐藏内容的方法
2017/10/19 Javascript
vue将data恢复到初始状态 &amp;&amp; 重新渲染组件实例
2020/09/04 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
[03:31]DOTA2英雄基础教程 大地之灵
2013/12/17 DOTA
用Python的urllib库提交WEB表单
2009/02/24 Python
Python 元组(Tuple)操作详解
2014/03/11 Python
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
python控制台中实现进度条功能
2015/11/10 Python
利用python代码写的12306订票代码
2015/12/20 Python
浅谈django model postgres的json字段编码问题
2018/01/05 Python
python re模块findall()函数实例解析
2018/01/19 Python
python 识别图片中的文字信息方法
2018/05/10 Python
Python实现的ftp服务器功能详解【附源码下载】
2019/06/26 Python
flask框架配置mysql数据库操作详解
2019/11/29 Python
Python 实现二叉查找树的示例代码
2020/12/21 Python
纯CSS3实现圆圈动态发光特效动画的示例代码
2021/03/08 HTML / CSS
德国奢侈品网上商城:Mytheresa
2016/08/24 全球购物
白俄罗斯在线大型超市:e-dostavka.by
2019/07/25 全球购物
九年级英语教学反思
2014/01/31 职场文书
亲子读书活动方案
2014/02/22 职场文书
人事专员岗位职责
2015/02/03 职场文书
2015年安全生产月活动总结
2015/03/26 职场文书
五年级作文之劳动作文
2019/11/12 职场文书
mybatis-plus模糊查询指定字段
2022/04/28 Java/Android