PHP一维数组的排序可以用sort(),asort(),arsort()等函数,但是PHP二维数组的排序需要自定义。
以下函数是对一个给定的二维数组按照指定的键值进行排序,先看函数定义:
1 function array_sort($arr,$keys,$type='asc'){ 2 $keysvalue = $new_array = array(); 3 foreach ($arr as $k=>$v){ 4 $keysvalue[$k] = $v[$keys]; 5 } 6 if($type == 'asc'){ 7 asort($keysvalue); 8 }else{ 9 arsort($keysvalue);10 }11 reset($keysvalue);12 foreach ($keysvalue as $k=>$v){13 $new_array[$k] = $arr[$k];14 }15 return $new_array; 16 }
它可以对二维数组按照指定的键值进行排序,也可以指定升序或降序排序法(默认为升序),用法示例:
$array = array(array('name'=>'手机','brand'=>'诺基亚','price'=>1050),array('name'=>'笔记本电脑','brand'=>'lenovo','price'=>4300),array('name'=>'剃须刀','brand'=>'飞利浦','price'=>3100),array('name'=>'跑步机','brand'=>'三和松石','price'=>4900),array('name'=>'手表','brand'=>'卡西欧','price'=>960),array('name'=>'液晶电视','brand'=>'索尼','price'=>6299),array('name'=>'激光打印机','brand'=>'惠普','price'=>1200));$ShoppingList = array_sort($array,'price');print_r($ShoppingList);
上面是对$array这个二维数组按照'price'从低到高的排序。
输出结果:(略)。