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 相关文章推荐
FirePHP 推荐一款PHP调试工具
Apr 23 PHP
php判断终端是手机还是电脑访问网站的思路及代码
Apr 24 PHP
PHP实现生成透明背景的PNG缩略图函数分享
Jul 08 PHP
php实现文件与16进制相互转换的方法示例
Feb 16 PHP
php分页查询的简单实现代码
Mar 14 PHP
PHP读取Excel类文件
May 15 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
Jun 01 PHP
PHP抽象类基本用法示例
Dec 28 PHP
php弹出提示框的是实例写法
Sep 26 PHP
PHP实现抽奖功能实例代码
Jun 30 PHP
PHP日期和时间函数的使用示例详解
Aug 06 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 session和cookie使用说明
2010/04/07 PHP
国外十大最流行的PHP框架排名
2013/07/04 PHP
php实现ip白名单黑名单功能
2015/03/12 PHP
Yii2实现上下联动下拉框功能的方法
2016/08/10 PHP
Javascript学习笔记之数组的构造函数
2014/11/23 Javascript
Javascript调用函数方法的几种方式介绍
2015/03/20 Javascript
JS获取下拉框显示值和判断单选按钮的方法
2015/07/09 Javascript
Vue实现选择城市功能
2017/05/27 Javascript
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
nodejs实现简单的gulp打包
2017/12/21 NodeJs
小程序自定义单页面、全局导航栏的实现代码
2019/03/15 Javascript
WebGL three.js学习笔记之阴影与实现物体的动画效果
2019/04/25 Javascript
微信小程序常用赋值方法小结
2019/04/30 Javascript
Vue 封装防刷新考试倒计时组件的实现
2020/06/05 Javascript
简单了解three.js 着色器材质
2020/08/03 Javascript
[52:31]VP vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
Python中的迭代器漫谈
2015/02/03 Python
在Gnumeric下使用Python脚本操作表格的教程
2015/04/14 Python
python中base64加密解密方法实例分析
2015/05/16 Python
python字符串str和字节数组相互转化方法
2017/03/18 Python
使用Python &amp; Flask 实现RESTful Web API的实例
2017/09/19 Python
dataframe设置两个条件取值的实例
2018/04/12 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
python ftp 按目录结构上传下载的实现代码
2018/09/12 Python
python 获取utc时间转化为本地时间的方法
2018/12/31 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
python编写实现抽奖器
2020/09/10 Python
使用HTML5 Canvas API中的clip()方法裁剪区域图像
2016/03/25 HTML / CSS
H5 meta小结(前端必看篇)
2016/08/24 HTML / CSS
Arti-shopping中文官网:大型海外商品一站式直邮平台
2020/03/23 全球购物
Burt’s Bees英国官网:世界领先的天然个人护理品牌
2020/08/17 全球购物
土地转让协议书
2014/04/15 职场文书
婚育证明格式
2015/06/17 职场文书