PHP多维数组按指定键名排序
来源:互联网 发布:访客网络设置多少 编辑:程序博客网 时间:2024/05/29 14:52
/* * 对多维数组按指定键名进行排序 * $arr 要排序的原始数组 * $key1 指定的主排序键名,eg: id * $sort1 指定的主排序规则, eg: SORT_NUMERIC, SORT_DESC * $key2 指定的辅排序键名,eg: sort * $sort2 指定的辅排序规则, eg: SORT_NUMERIC, SORT_DESC * $child_key_name 子元素键名 */function sort_array_by_feild($arr, $key1, $sort1, $key2='', $sort2='', $child_key_name=''){ //不是数组则直接返回 if(!is_array($arr)){ return; } $main_key = array(); if($key2){ $assist_key = array(); } foreach($arr as $key => $val){ $main_key[] = $val[$key1]; if($key2){ $assist_key[] = $val[$key2]; } //对子元素数组排序 if($child_key_name && isset($val[$child_key_name])){ $arr[$key][$child_key_name] = sort_array_by_feild($val[$child_key_name], $key1, $sort1, $key2, $sort2, $child_key_name); } } //主字段排序判断 $sort1 = explode(',', $sort1); if($key2 && $sort2){ //辅字段排序判断 $sort2 = explode(',', $sort2); array_multisort($main_key, ($sort1[0]=='SORT_NUMERIC')?SORT_NUMERIC:SORT_STRING, ($sort1[1]=='SORT_DESC')?SORT_DESC:SORT_ASC, $assist_key, ($sort2[0]=='SORT_NUMERIC')?SORT_NUMERIC:SORT_STRING, ($sort2[1]=='SORT_DESC')?SORT_DESC:SORT_ASC, $arr); }else{ array_multisort($main_key, ($sort1[0]=='SORT_NUMERIC')?SORT_NUMERIC:SORT_STRING, ($sort1[1]=='SORT_DESC')?SORT_DESC:SORT_ASC, $arr); } return $arr;}
阅读全文
0 0
- PHP多维数组按指定键名排序
- 【php】二维数组按指定的键名排序
- PHP多维数组指定多字段排序
- PHP递归多维数组替换键名和键值
- PHP多维数组排序
- php 多维数组排序
- PHP多维数组排序
- php多维数组排序
- php多维数组排序
- php 多维数组排序
- PHP多维数组排序
- PHP多维数组排序
- PHP多维数组排序
- PHP:多维数组排序
- PHP多维数组排序
- php 多维数组排序
- PHP多维数组排序
- PHP多维数组指定某个键来排序
- HDU 1846 Brave Game
- 安信可A7模块GPS-编程获取GPS定位信息
- NM_LISTVIEW结构
- 如何重写hashCode()和equals()方法
- App之间的通信方式
- PHP多维数组按指定键名排序
- 大数据挑战赛历程与总结随笔
- 使用scatter与random.normal函数绘制散点图简单实例
- Java 上传 多张图片
- 程序员面试金典(7):清除行列(python)
- 【贪心算法(一)】贪心算法基础
- 3.S5PV210串口通信详解(一)
- 机器学习:kNN近邻算法
- 子控件与父控件的焦点处理