yii2 多维数组指定多字段排序
来源:互联网 发布:由浅入深vc多线程编程 编辑:程序博客网 时间:2024/06/06 14:21
本文涉及关键函数(array_multisort)介绍
(PHP 4, PHP 5, PHP 7)
array_multisort — 对多个数组或多维数组进行排序
说明:
bool array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]] )
array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。
关联(string)键名保持不变,但数字键名会被重新索引
参数:
array1
要排序的 array。
array1_sort_order
之前 array 参数要排列的顺序。 SORT_ASC 按照上升顺序排序, SORT_DESC 按照下降顺序排序。
此参数可以和 array1_sort_flags 互换,也可以完全删除,默认是 SORT_ASC 。
实现多维数组的指定多个字段排序
如何实现多维数组指定多个字段来对数组进行排序?
示例如下:
$arr = array( 0=>array('id'=>5,'name'=>'小明','num'=> 14), 1=>array('id'=>5,'name'=>'小李','num'=>52), 2=>array('id'=>4,'name'=>'小花','num'=>36), 3=>array('id'=>6,'name'=>'小李','num'=>14));
采用php中的func_get_args函数,来动态获取传入的值,解决多字段排序。实现如下:
/** * 多维数组指定多字段排序 * 排序:SORT_ASC升序 , SORT_DESC降序 * 示例:$this->multiaArraySort($arr, 'num', SORT_DESC, 'sort', SORT_ASC) * @return array */ public function multiaArraySort() { $funcArgs = func_get_args(); if(empty($funcArgs)){ return null; } $arr = array_shift($funcArgs); if(!is_array($arr)){ throw new Exception('第一个参数必须为数组'); } foreach($funcArgs as $key => $value){ if(is_string($value)){ $tempArr = array(); foreach($arr as $k=> $v){ $tempArr[$k] = $v[$value]; } $funcArgs[$key] = $tempArr; } } $funcArgs[] = &$arr; call_user_func_array('array_multisort', $funcArgs); return array_pop($funcArgs); } // 执行 $arr = $this->multiaArraySort($arr, 'id', SORT_DESC, 'num', SORT_DESC); var_dump($arr);
运行结果如下:
array (size=4) 0 => array (size=3) 'id' => int 6 'name' => string '小李' (length=6) 'num' => int 14 1 => array (size=3) 'id' => int 5 'name' => string '小李' (length=6) 'num' => int 52 2 => array (size=3) 'id' => int 5 'name' => string '小明' (length=6) 'num' => int 14 3 => array (size=3) 'id' => int 4 'name' => string '小花' (length=6) 'num' => int 36
阅读全文
0 0
- yii2 多维数组指定多字段排序
- PHP多维数组指定多字段排序
- JSON数组多字段排序
- php中array_multisort()对多维数组进行排序,相当于数据库查询是order by多字段排序。。超好用
- PHP多维数组按指定键名排序
- 多维数组按照指定项排序
- SQL多字段排序
- 多字段排序
- sql多字段排序
- 多字段查询排序
- thinkphp 多字段排序
- oracle多字段排序
- 多字段排序处理
- Mysql多字段排序
- java 多字段排序
- MySql -- 多字段排序
- solr多字段排序
- 多字段属性排序
- 这里是更新配置
- Docker 常用命令和使用实例
- 接收http请求 支付宝来帐交易 继承httpServlet
- linux下编写I2C驱动与stm32通信(一)
- 计算机老师为什么不用伽卡他卡做文件服务器?
- yii2 多维数组指定多字段排序
- 【Maya+arnold】2017.12.15 3D设计大赛记录(图片流(获决赛优秀奖
- 重磅 | AI大牛吴恩达再宣布新项目Landing.ai:要用AI复兴制造业!
- CRI Vs CRI-Containerd
- 趋势 | 未来15年,人工智能将带给城市8大关键性改变
- 评论 | 以AI之名"一进一出",谷歌在中国的棋下对了吗?
- 我的第一篇博客
- /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file o
- scrapy环境搭建 爬虫入门了解