PHP二维数组排序函数

转自:http://www.phper.org.cn/?post=66


PHP二维数组排序函数

PHP一维数组的排序可以用sort(),asort(),arsort()等函数,但是PHP二维数组的排序需要自定义。

以下函数是对一个给定的二维数组按照指定的键值进行排序,先看函数定义:

view source print ?
01. function array_sort($arr,$keys,$type='asc'){
02. $keysvalue = $new_array = array();
03. foreach ($arr as $k=>$v){
04. $keysvalue[$k] = $v[$keys];
05. }
06. if($type == 'asc'){
07. asort($keysvalue);
08. }else{
09. arsort($keysvalue);
10. }
11. reset($keysvalue);
12. foreach ($keysvalue as $k=>$v){
13. $new_array[$k] = $arr[$k];
14. }
15. return $new_array;
16. }

它可以对二维数组按照指定的键值进行排序,也可以指定升序或降序排序法(默认为升序),用法示例:

view source print ?
01. $array = array(
02. array('name'=>'手机','brand'=>'诺基亚','price'=>1050),
03. array('name'=>'笔记本电脑','brand'=>'lenovo','price'=>4300),
04. array('name'=>'剃须刀','brand'=>'飞利浦','price'=>3100),
05. array('name'=>'跑步机','brand'=>'三和松石','price'=>4900),
06. array('name'=>'手表','brand'=>'卡西欧','price'=>960),
07. array('name'=>'液晶电视','brand'=>'索尼','price'=>6299),
08. array('name'=>'激光打印机','brand'=>'惠普','price'=>1200)
09. );
10.  
11. $ShoppingList = array_sort($array,'price');
12. print_r($ShoppingList);

上面是对$array这个二维数组按照'price'从低到高的排序。

输出结果:(略)。

<完>

你可能感兴趣的:(排序,PHP,二维)