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 事务处理数据实现代码
May 13 PHP
PHP数组及条件,循环语句学习
Nov 11 PHP
深入PHP运行环境配置的详解
Jun 04 PHP
PHP中读取照片exif信息的方法
Aug 20 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
Dec 15 PHP
PHP实现二维数组去重功能示例
Jan 12 PHP
一键生成各种尺寸Icon的php脚本(实例)
Feb 08 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
Aug 02 PHP
PHP实现验证码校验功能
Nov 16 PHP
PHP一个简单的无需刷新爬虫
Jan 05 PHP
Laravel使用模型实现like模糊查询的例子
Oct 24 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
Jul 24 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中动态显示签名和ip原理
2007/03/28 PHP
深入PHP magic quotes的详解
2013/06/17 PHP
ThinkPHP之foreach标签使用概述
2014/06/30 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
2018/10/18 PHP
Javascript中的数学函数
2007/04/04 Javascript
JavaScript中的稀疏数组与密集数组[译]
2012/09/17 Javascript
js实现身份证号码验证的简单实例
2014/02/19 Javascript
js和jquery设置disabled属性为true使按钮失效
2014/08/07 Javascript
jQuery实现左右切换焦点图
2015/04/03 Javascript
ajax在兼容模式下失效的快速解决方法
2016/03/22 Javascript
JavaScript 函数的执行过程
2016/05/09 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
Vue 单文件中的数据传递示例
2017/03/21 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
2017/09/13 Javascript
实例讲解javascript实现异步图片上传方法
2017/12/05 Javascript
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
2019/07/25 Javascript
vue iview的菜单组件Mune 点击不高亮的解决方案
2019/11/01 Javascript
[55:16]Mski vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
[00:19]CN DOTA NEVER DIE!VG夺冠rOtK接受采访
2019/12/23 DOTA
python del()函数用法
2013/03/24 Python
归纳整理Python中的控制流语句的知识点
2015/04/14 Python
Python使用分布式锁的代码演示示例
2018/07/30 Python
使用python对文件中的数值进行累加的实例
2018/11/28 Python
通过pykafka接收Kafka消息队列的方法
2018/12/27 Python
python读取文件名并改名字的实例
2019/01/07 Python
一文读懂Python 枚举
2020/08/25 Python
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
高性能装备提升营地:Kammok
2019/02/27 全球购物
传播学毕业生求职信
2013/10/11 职场文书
内科护士实习自我鉴定
2013/10/17 职场文书
网站开发实习生的自我评价
2013/12/11 职场文书
《黄山奇石》教学反思
2014/04/19 职场文书
婚前保证书范文
2015/02/28 职场文书
新闻发布会新闻稿
2015/07/17 职场文书
高中优秀作文(范文)
2019/08/15 职场文书
Python制作春联的示例代码
2022/01/22 Python