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中的加密功能
Oct 09 PHP
dede全站URL静态化改造[070414更正]
Apr 17 PHP
php $_SERVER当前完整url的写法
Nov 12 PHP
Function eregi is deprecated (解决方法)
Jun 21 PHP
PHP生成随机密码类分享
Jun 25 PHP
PHP 读取和编写 XML
Nov 19 PHP
php提取字符串中网站url地址的方法
Dec 03 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
Jul 01 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
Dec 14 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
对laravel的session获取与存取方法详解
Oct 08 PHP
基于laravel belongsTo使用详解
Oct 18 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
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
Session服务器配置指南与使用经验的深入解析
2013/06/17 PHP
PHP下载文件的函数实例代码
2016/05/18 PHP
php字符串操作常见问题小结
2016/10/11 PHP
php创建图像具体步骤
2017/03/13 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
Jquery 扩展方法
2010/05/06 Javascript
ajax请求乱码的解决方法(中文乱码)
2014/04/10 Javascript
JavaScript错误处理
2015/02/03 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
2015/11/19 Javascript
Sea.JS知识总结
2016/05/05 Javascript
从零开始做一个pagination分页组件
2017/03/15 Javascript
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
JS正则表达式完美实现身份证校验功能
2017/10/18 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
VUE实现密码验证与提示功能
2019/10/18 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
2020/04/28 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
wxPython中listbox用法实例详解
2015/06/01 Python
python语言使用技巧分享
2016/05/31 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
基于python list对象中嵌套元组使用sort时的排序方法
2018/04/18 Python
对pycharm 修改程序运行所需内存详解
2018/12/03 Python
在Python中过滤Windows文件名中的非法字符方法
2019/06/10 Python
Pandas库之DataFrame使用的学习笔记
2019/06/21 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
2020/06/18 Python
20行代码教你用python给证件照换底色的方法示例
2021/02/05 Python
激光脱毛、蓝光和护肤:Tria Beauty
2019/03/28 全球购物
大三自我鉴定范文
2013/10/05 职场文书
汽车专业毕业生推荐信
2013/11/12 职场文书
管理学专业个人求职信范文
2013/12/13 职场文书
素质教育培训心得体会
2016/01/19 职场文书
Redis如何使用乐观锁(CAS)保证数据一致性
2022/03/25 Redis