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中include与require使用方法区别详解
Oct 19 PHP
浅析PHP微信支付通知的处理方式
May 25 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
Jul 30 PHP
PHP实现无限极分类图文教程
Nov 25 PHP
php实现encode64编码类实例
Mar 24 PHP
Yii2 rbac权限控制之菜单menu实例教程
Apr 28 PHP
PHP常用的三种设计模式
Feb 17 PHP
PDO::getAttribute讲解
Jan 28 PHP
php服务器的系统详解
Oct 12 PHP
php+ajax实现文件切割上传功能示例
Mar 03 PHP
thinkphp5.1 框架钩子和行为用法实例分析
May 25 PHP
Yii 实现数据加密和解密
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
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
Mac系统完美安装PHP7详细教程
2017/06/06 PHP
PDO::exec讲解
2019/01/28 PHP
My Desktop :) 桌面式代码
2008/12/29 Javascript
javascript实现文本域写入字符时限定字数
2014/02/12 Javascript
js的toLowerCase方法用法实例
2015/01/27 Javascript
js面向对象之公有、私有、静态属性和方法详解
2015/04/17 Javascript
jquery easyui datagrid实现增加,修改,删除方法总结
2016/05/25 Javascript
简单实现bootstrap选项卡效果
2017/02/08 Javascript
详解打造 Vue.js 可复用组件
2017/03/24 Javascript
vue.js实现单选框、复选框和下拉框示例
2017/07/18 Javascript
JS实现的简单表单验证功能完整实例
2017/10/14 Javascript
JS二分查找算法详解
2017/11/01 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
2018/04/20 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
2018/08/08 Javascript
让axios发送表单请求形式的键值对post数据的实例
2018/08/11 Javascript
Vue-cli项目部署到Nginx服务器的方法
2019/11/01 Javascript
jQuery实现朋友圈查看图片
2020/09/11 jQuery
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
Python中用post、get方式提交数据的方法示例
2017/09/22 Python
pandas.DataFrame选取/排除特定行的方法
2018/07/03 Python
Python实现将Excel转换成xml的方法示例
2018/08/25 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
2019/04/05 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
美国渔具店:FishUSA
2019/08/07 全球购物
上海奥佳笔试题面试题
2016/11/16 面试题
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
材料成型专业个人求职信范文
2013/09/25 职场文书
医药营销个人求职信范文
2014/02/07 职场文书
艾滋病宣传活动总结
2014/05/08 职场文书
中华在我心中演讲稿
2014/09/13 职场文书
场地使用证明模板
2014/10/25 职场文书
新兵入伍决心书
2015/09/22 职场文书
优秀团员主要事迹范文
2015/11/05 职场文书
成人成长感言如何写?
2019/08/16 职场文书
Java Spring Lifecycle的使用
2022/05/06 Java/Android