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+MySQL 手工注入语句大全 推荐
Oct 30 PHP
PHP simple_html_dom.php+正则 采集文章代码
Dec 24 PHP
php中定义网站根目录的常用方法
Aug 08 PHP
PHP遍历二维数组的代码
Apr 22 PHP
php array_pop()数组函数将数组最后一个单元弹出(出栈)
Jul 12 PHP
完美实现wordpress禁止文章修订和自动保存的方法
Nov 03 PHP
PHP里8个鲜为人知的安全函数分析
Dec 09 PHP
配置Nginx+PHP的正确思路与过程
May 10 PHP
php自定义函数实现二维数组按指定key排序的方法
Sep 29 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
Apr 18 PHP
php + WebUploader实现图片批量上传功能
May 06 PHP
php快速导入大量数据的实例方法
Sep 23 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实现图片以base64显示的方法
2016/10/13 PHP
PDO::commit讲解
2019/01/27 PHP
浅谈laravel框架sql中groupBy之后排序的问题
2019/10/17 PHP
监控 url fragment变化的js代码
2010/04/19 Javascript
JavaScript实现复制功能各浏览器支持情况实测
2013/07/18 Javascript
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
2014/05/02 Javascript
Bootstrap每天必学之模态框(Modal)插件
2016/04/26 Javascript
js实现前端图片上传即时预览功能
2017/08/02 Javascript
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
HTML5开发Kinect体感游戏的实例应用
2017/09/18 Javascript
JS实现获取汉字首字母拼音、全拼音及混拼音的方法
2017/11/14 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
微信小程序公用参数与公用方法用法示例
2019/01/09 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
2019/04/17 Javascript
详解Nuxt.js 实战集锦
2019/11/19 Javascript
uniapp微信小程序:key失效的解决方法
2021/01/20 Javascript
复制粘贴功能的Python程序
2008/04/04 Python
Python中的super()方法使用简介
2015/08/14 Python
Python机器学习之K-Means聚类实现详解
2018/02/22 Python
解决Django migrate No changes detected 不能创建表的问题
2018/05/27 Python
使用python的pexpect模块,实现远程免密登录的示例
2019/02/14 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
2019/10/11 Python
python模拟哔哩哔哩滑块登入验证的实现
2020/04/24 Python
解决Python3.8运行tornado项目报NotImplementedError错误
2020/09/02 Python
Python接口自动化测试框架运行原理及流程
2020/11/30 Python
使用HTML5捕捉音频与视频信息概述及实例
2018/08/22 HTML / CSS
俄罗斯外国汽车和国产汽车配件网上商店:Движком
2020/04/19 全球购物
init进程的作用
2015/08/20 面试题
文科教师毕业的自我评价
2014/01/16 职场文书
年终考核评语
2014/01/19 职场文书
公司运动会策划方案
2014/05/25 职场文书
暑期培训心得体会
2014/09/02 职场文书
解放思想大讨论活动心得体会
2014/09/11 职场文书
工作疏忽检讨书500字
2014/10/26 职场文书
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
2021/06/11 Python
剧场版《转生恶役只好拔除破灭旗标》公开最新视觉图 2023年上映
2022/04/02 日漫