PHP 二维数组按某列进行排序
2014-12-01 23:24
211 查看
/*
* 二维数组 按某列排序
* array_multisort($arr1,$arr2)
* 手册 例子如下
*
*/
/*************************************/
/* 从上面的例子不难看出,array_multisort()函数
* 是将每一个二维数组的列作为 一个参数进行排序
* 来达到整个数组的排序
*/
/*************************************/
/*说白了 原理就是:
新数组 原二维数组
2 array('volume' => 67, 'edition' => 2);
1 array('volume' => 86, 'edition' => 1);
6 array('volume' => 85, 'edition' => 6);
2 array('volume' => 98, 'edition' => 2);
6 array('volume' => 86, 'edition' => 6);
7 array('volume' => 67, 'edition' => 7);
这两个数组的每一行都锁在一起,新数组一旦变动顺序,
那么就会连带每一行的二维数组也跟着变换顺序 ,即新数组为参照物
相当于查询子句中的 order by
*/
运行结果:
7 array('volume' => 67, 'edition' => 7);
6 array('volume' => 86, 'edition' => 6);
6 array('volume' => 85, 'edition' => 6);
2 array('volume' => 98, 'edition' => 2);
2 array('volume' => 67, 'edition' => 2);
1 array('volume' => 86, 'edition' => 1);
* 二维数组 按某列排序
* array_multisort($arr1,$arr2)
* 手册 例子如下
*
*/
$data[] = array('volume' => 67, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 1); $data[] = array('volume' => 85, 'edition' => 6); $data[] = array('volume' => 98, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 6); $data[] = array('volume' => 67, 'edition' => 7);
// 取得列的列表 foreach ($data as $key => $row) { $volume[$key] = $row['volume']; $edition[$key] = $row['edition']; } // 将数据根据 volume 降序排列,根据 edition 升序排列 // 把 $data 作为最后一个参数,以通用键排序 array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
/*************************************/
/* 从上面的例子不难看出,array_multisort()函数
* 是将每一个二维数组的列作为 一个参数进行排序
* 来达到整个数组的排序
*/
/*************************************/
function sigcol_arrsort($data,$col,$type=SORT_DESC){ if(is_array($data)){ $i=0; foreach($data as $k=>$v){ if(key_exists($col,$v)){ $arr[$i] = $v[$col]; $i++; }else{ continue; } } }else{ return false; } array_multisort($arr,$type,$data); return $data; } print_r(sigcol_arrsort($data,'edition',SORT_DESC));
/*说白了 原理就是:
新数组 原二维数组
2 array('volume' => 67, 'edition' => 2);
1 array('volume' => 86, 'edition' => 1);
6 array('volume' => 85, 'edition' => 6);
2 array('volume' => 98, 'edition' => 2);
6 array('volume' => 86, 'edition' => 6);
7 array('volume' => 67, 'edition' => 7);
这两个数组的每一行都锁在一起,新数组一旦变动顺序,
那么就会连带每一行的二维数组也跟着变换顺序 ,即新数组为参照物
相当于查询子句中的 order by
*/
运行结果:
7 array('volume' => 67, 'edition' => 7);
6 array('volume' => 86, 'edition' => 6);
6 array('volume' => 85, 'edition' => 6);
2 array('volume' => 98, 'edition' => 2);
2 array('volume' => 67, 'edition' => 2);
1 array('volume' => 86, 'edition' => 1);
相关文章推荐
- php按二维数组中的某一元素值进行排序
- php对二维数组进行排序的简单实例
- PHP按指定键值对二维数组进行排序的方法
- php二维数组根据某字段排序(对查询结果集进行排序)
- PHP中按二维数组的某个字段进行排序类
- php对二维数组进行排序的简单实例
- PHP 对一个给定的二维数组按照指定的键值进行排序
- PHP按指定键值对二维数组进行排序的方法
- php对二维数组进行相关操作(排序、转换、去空白等)
- php二维数组排序 按照指定的key 对数组进行排序
- 代码分享:php对二维数组进行排序
- php对二维数组进行排序、二维数组去掉重复值
- php对二维数组进行排序的简单实例
- php二维数组根据某字段排序(对查询结果集进行排序)
- php对二维数组进行排序
- php对二维数组进行排序的简单实例
- PHP 的二维数组,按照某个键的值进行排序
- php 对二维数组的某个键的值进行排序
- php 对二维数组的某个键的值进行排序
- PHP对二维数组按字段进行排序