php自定义函数实现二维数组排序功能


Posted in PHP onJuly 20, 2016

本文实例讲述了php自定义函数实现二维数组排序功能。分享给大家供大家参考,具体如下:

/**作用: 二维数组排序函数,支持多键名排序
 * 返回: 排序好的数组
 * 使用: array_msort(数组,需要排序的键名,排序方式);
 * 例子: array_msort($cflist,"chapter_orderid","SORT_ASC");
 *    array_msort($arr,"name","SORT_ASC","type","SORT_DESC","size","SORT_ASC","SORT_STRING");
 */
function array_msort($ArrayData,$KeyName1,$SortOrder1 = "SORT_ASC",$SortType1 = "SORT_REGULAR") {
  if(!is_array($ArrayData)) {
    return $ArrayData;
  }
  // 获取参数数量.
  $ArgCount = func_num_args();
  // 排序,并放置到SortRule数组
  for($i = 1;$i < $ArgCount;$i ++) {
    $Arg = func_get_arg($i);
    if(!eregi("SORT",$Arg)) {
      $KeyNameList[] = $Arg;
      $SortRule[] = '$'.$Arg;
    }
    else {
      $SortRule[] = $Arg;
    }
  }
  // Get the values according to the keys and put them to array.
  foreach($ArrayData AS $Key => $Info) {
    foreach($KeyNameList AS $KeyName) {
      ${$KeyName}[$Key] = $Info[$KeyName];
    }
  }
  // Create the eval string and eval it.
  $EvalString = 'array_multisort('.join(",",$SortRule).',$ArrayData);';
  eval($EvalString);
  return $ArrayData;
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php的header和asp中的redirect比较
Oct 09 PHP
PHP 出现乱码和Sessions验证问题的解决方法!
Dec 06 PHP
PHP页面间参数传递的四种方法详解
Jun 09 PHP
php cURL和Rolling cURL并发方式比较
Oct 30 PHP
php制作中间带自己定义图片二维码的方法
Jan 27 PHP
Linux中用PHP判断程序运行状态的2个方法
May 04 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
May 06 PHP
解决CodeIgniter伪静态失效
Jun 09 PHP
PHP中isset与array_key_exists的区别实例分析
Jun 02 PHP
php微信高级接口群发 多客服
Jun 23 PHP
php中mkdir()函数的权限问题分析
Sep 24 PHP
PHP生成zip压缩包的常用方法示例
Aug 22 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
Jul 20 #PHP
php使用get_class_methods()函数获取分类的方法
Jul 20 #PHP
PHP+Ajax验证码验证用户登录
Jul 20 #PHP
PHP+Ajax实现验证码的实时验证
Jul 20 #PHP
php+ajax注册实时验证功能
Jul 20 #PHP
PHP实现的随机IP函数【国内IP段】
Jul 20 #PHP
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
Jul 20 #PHP
You might like
php REMOTE_ADDR之获取访客IP的代码
2008/04/22 PHP
快速开发一个PHP扩展图文教程
2008/12/12 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
2016/10/20 PHP
浅析JavaScript中的常用算法与函数
2013/11/21 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
js鼠标点击图片切换效果实现代码
2015/11/19 Javascript
jquery 判断div show的状态实例
2016/12/03 Javascript
jQuery实现在新增加的元素上添加事件方法案例分析
2017/02/09 Javascript
Bootstrap模态框案例解析
2017/03/05 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
利用jQuery异步上传文件的插件用法详解
2017/07/19 jQuery
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
深入理解Vue官方文档梳理之全局API
2017/11/22 Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
2018/02/07 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
2018/05/16 Javascript
VUE:vuex 用户登录信息的数据写入与获取方式
2019/11/11 Javascript
Python编程之属性和方法实例详解
2015/05/19 Python
Perl中著名的Schwartzian转换问题解决实现
2015/06/02 Python
玩转python爬虫之cookie使用方法
2016/02/17 Python
Python的网络编程库Gevent的安装及使用技巧
2016/06/24 Python
python利用paramiko连接远程服务器执行命令的方法
2017/10/16 Python
Python实现时钟显示效果思路详解
2018/04/11 Python
快速解决pandas.read_csv()乱码的问题
2018/06/15 Python
Python读取文件内容为字符串的方法(多种方法详解)
2020/03/04 Python
Python 读取位于包中的数据文件
2020/08/07 Python
canvas环形倒计时组件的示例代码
2018/06/14 HTML / CSS
俄罗斯电子产品在线商店:UltraTrade
2020/01/30 全球购物
什么是GWT的Entry Point
2013/08/16 面试题
爱岗敬业演讲稿范文
2014/01/14 职场文书
国庆节演讲稿
2014/05/27 职场文书
高中课前三分钟演讲稿
2014/08/18 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
2014年民政工作总结
2014/11/26 职场文书
火烧圆明园的观后感
2015/06/03 职场文书
使用feign服务调用添加Header参数
2021/06/23 Java/Android
MySQL transaction事务安全示例讲解
2022/06/21 MySQL