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与SQL注入攻击[三]
Apr 17 PHP
PHP对象递归引用造成内存泄漏分析
Aug 28 PHP
php合并数组中相同元素的方法
Nov 13 PHP
基于php实现的php代码加密解密类完整实例
Oct 12 PHP
解决php-fpm.service not found问题的办法
Jun 06 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
Sep 22 PHP
php进程daemon化的正确实现方法
Sep 06 PHP
PHP开发实现快递查询功能详解
Apr 08 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
Sep 19 PHP
laravel框架实现敏感词汇过滤功能示例
Feb 15 PHP
PHP 实现缩略图
Mar 09 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
第二节--PHP5 的对象模型
2006/11/16 PHP
php 删除数组元素
2009/01/16 PHP
Yii Framework框架获取分类下面的所有子类方法
2014/06/20 PHP
php+mysqli使用面向对象方式更新数据库实例
2015/01/29 PHP
PHP中的Session对象如何使用
2015/09/25 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
用 JSON 处理缓存
2007/04/27 Javascript
JQuery插件ajaxfileupload.js异步上传文件实例
2015/05/19 Javascript
jquery的幻灯片图片切换效果代码分享
2015/09/07 Javascript
深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解
2016/04/03 Javascript
JavaScript定义全局对象的方法示例
2017/01/12 Javascript
js实现上下左右弹框划出效果
2017/03/08 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
js 中rewrap-ajax.js插件实例代码
2017/10/20 Javascript
vuex与组件联合使用的方法
2018/05/10 Javascript
react MPA 多页配置详解
2019/10/18 Javascript
vue实现购物车结算功能
2020/06/18 Javascript
微信小程序实现导航栏和内容上下联动功能代码
2020/06/29 Javascript
微信小程序实现身份证取景框拍摄
2020/09/09 Javascript
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
Python中的异常处理学习笔记
2015/01/28 Python
pandas 按照特定顺序输出的实现代码
2018/07/10 Python
python中的字符串内部换行方法
2018/07/19 Python
Python补齐字符串长度的实例
2018/11/15 Python
python浪漫表白源码
2019/04/05 Python
django 实现手动存储文件到model的FileField
2020/03/30 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
Python collections模块的使用方法
2020/10/09 Python
matplotlib事件处理基础(事件绑定、事件属性)
2021/02/03 Python
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
乡镇党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
任长霞观后感
2015/06/16 职场文书
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
2022/09/23 Servers