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写的采集程序
Mar 16 PHP
php中根据变量的类型 选择echo或dump
Jul 05 PHP
php比较多维数组中值的大小排序实现代码
Sep 08 PHP
PHP版 汉字转码的实现详解
Jun 09 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
Aug 07 PHP
CI框架Session.php源码分析
Nov 03 PHP
php实现的美国50个州选择列表实例
Apr 20 PHP
thinkPHP导出csv文件及用表格输出excel的方法
Dec 30 PHP
PHP与jquery实时显示网站在线人数实例详解
Dec 02 PHP
php生成无限栏目树
Mar 16 PHP
Laravel中使用Queue的最基本操作教程
Dec 27 PHP
PHP连续签到功能实现方法详解
Dec 04 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实现多进程并行执行脚本
2013/06/18 PHP
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
2014/04/24 PHP
Yii实现MySQL多数据库和读写分离实例分析
2014/12/03 PHP
用javascript获取textarea中的光标位置
2008/05/06 Javascript
通过event对象的fromElement属性解决热区设置主实体的一个bug
2008/12/22 Javascript
JS中动态添加事件(绑定事件)的代码
2011/01/09 Javascript
浅析js中的浮点型运算问题
2014/01/06 Javascript
js从外部获取图片的实现方法
2016/08/05 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
jquery Form轻松实现文件上传
2017/05/24 jQuery
JS面向对象的程序设计相关知识小结
2018/05/26 Javascript
Node.js中读取TXT文件内容fs.readFile()用法
2018/10/10 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
JavaScript的变量声明与声明提前用法实例分析
2019/11/26 Javascript
基于javascript实现贪吃蛇经典小游戏
2020/04/10 Javascript
Python在信息学竞赛中的运用及Python的基本用法(详解)
2017/08/15 Python
Python使用flask框架操作sqlite3的两种方式
2018/01/31 Python
python中利用h5py模块读取h5文件中的主键方法
2018/06/05 Python
Python 变量类型详解
2018/10/10 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
详解Python在使用JSON时需要注意的编码问题
2019/12/06 Python
pytorch 使用加载训练好的模型做inference
2020/02/20 Python
python使用建议与技巧分享(二)
2020/08/17 Python
python 常见的排序算法实现汇总
2020/08/21 Python
灵活运用CSS3特性绘制简易版围棋效果
2016/09/28 HTML / CSS
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
采购部部门职责
2013/12/15 职场文书
在校大学生个人的自我评价
2014/02/13 职场文书
广播节目策划方案
2014/05/23 职场文书
工商管理专业自荐信
2014/06/03 职场文书
2014年群众路线党员自我评议
2014/09/24 职场文书
2015年七夕情人节活动方案
2015/05/06 职场文书
2019年干货:自我鉴定
2019/03/25 职场文书
四年级作文之说明文作文
2019/10/14 职场文书
Navicat for MySQL的使用教程详解
2021/05/27 MySQL
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers