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 相关文章推荐
提问的智慧
Oct 09 PHP
php chr() ord()中文截取乱码问题解决方法
Sep 08 PHP
php获取网页内容方法总结
Dec 04 PHP
PHP 伪静态隐藏传递参数名的四种方法
Feb 22 PHP
PHP中创建和验证哈希的简单方法实探
Jul 06 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
Oct 10 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
May 12 PHP
PHP生成静态HTML文档实现代码
Jun 23 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
Feb 15 PHP
yii2.0整合阿里云oss的示例代码
Sep 19 PHP
详解Laravel设置多态关系模型别名的方式
Oct 17 PHP
PHP查找一列有序数组是否包含某值的方法
Feb 07 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
使用openssl实现rsa非对称加密算法示例
2014/01/24 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
javascript 装载iframe子页面,自适应高度
2009/03/20 Javascript
分享十五个最佳jQuery 幻灯插件和教程
2010/03/27 Javascript
Jquery下判断Id是否存在的代码
2011/01/06 Javascript
映彩衣的js随笔(js图片切换效果)
2011/07/31 Javascript
JavaScript入门之对象与JSON详解
2011/10/21 Javascript
js时间日期和毫秒的相互转换
2013/02/22 Javascript
Jquery 例外被抛出且未被接住原因介绍
2013/09/04 Javascript
深入浅出理解javaScript原型链
2015/05/09 Javascript
JavaScript点击按钮后弹出透明浮动层的方法
2015/05/11 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
微信小程序开发之录音机 音频播放 动画实例 (真机可用)
2016/12/08 Javascript
canvas绘图不清晰的解决方案
2017/02/28 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
2017/07/20 Javascript
angularjs路由传值$routeParams详解
2020/09/05 Javascript
常用的 JS 排序算法 整理版
2018/04/05 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
JavaScript数组排序小程序实现解析
2020/01/13 Javascript
python单链表实现代码实例
2013/11/21 Python
python3 线性回归验证方法
2019/07/09 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
python 已知三条边求三角形的角度案例
2020/04/12 Python
pandas参数设置的实用小技巧
2020/08/23 Python
Python Selenium自动化获取页面信息的方法
2020/08/31 Python
HTML5头部标签的一些常用信息小结
2016/10/23 HTML / CSS
日本一家专门经营各种箱包的大型网站:Traveler Store
2016/08/03 全球购物
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
白酒市场营销方案
2014/02/25 职场文书
解除合同协议书
2014/04/17 职场文书
校园文化标语
2014/06/18 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
2015年体育教师个人工作总结
2015/05/12 职场文书
2015中秋祝酒词
2015/08/12 职场文书
基于JavaScript实现年月日三级联动
2021/06/22 Javascript
Apache SkyWalking 监控 MySQL Server 实战解析
2022/09/23 Servers