PHP实现数组根据某个单元字段排序操作示例
这篇文章主要介绍了PHP实现数组根据某个单元字段排序操作,结合实例形式分析了php基于array_multisort函数降序排序操作相关实现技巧,需要的朋友可以参考下。
本文实例讲述了PHP实现数组根据某个单元字段排序操作,分享给大家供大家参考,具体如下:
如题,给出一个PHP数组,数组结构如下:
- $arr = array(
- array(
- 'name'=>'sadas',
- 'norder'=>1
- ),
- array(
- 'name'=>'sadas',
- 'norder'=>11
- ),
- array(
- 'name'=>'sadas',
- 'norder'=>123
- ),
- array(
- 'name'=>'sadas',
- 'norder'=>11
- )
- );
需要是需要按照norder从大到小的顺序,重新排列$arr数组的顺序。
可以使用array_multisort函数来帮助排序:
- function p($arr){
- echo "<pre>";
- print_r($arr);
- echo "</pre>";
- }
- $arr = array(
- array(
- 'name'=>'sadas',
- 'norder'=>1
- ),
- array(
- 'name'=>'sadas',
- 'norder'=>11
- ),
- array(
- 'name'=>'sadas',
- 'norder'=>123
- ),
- array(
- 'name'=>'sadas',
- 'norder'=>11
- )
- );
- $flag = array();
- foreach($arr as $v){
- $flag[] = $v['norder'];
- }
- array_multisort($flag, SORT_DESC, $arr);
- p($arr);
运行结果:
- Array
- (
- [0] => Array
- (
- [name] => sadas
- [norder] => 123
- )
- [1] => Array
- (
- [name] => sadas
- [norder] => 11
- )
- [2] => Array
- (
- [name] => sadas
- [norder] => 11
- )
- [3] => Array
- (
- [name] => sadas
- [norder] => 1
- )
- )