主要是使用PHP的排序函数,asort()和arsort()。
为了减少代码的耦合性,我们将根据数组中的键值进行排序封装成一个函数
1 'aa','price'=>1050), 4 array('name'=>'bb','price'=>4300), 5 array('name'=>'cc','price'=>3100), 6 array('name'=>'dd','price'=>4900), 7 array('name'=>'ee','price'=>960), 8 array('name'=>'ff','price'=>6299), 9 array('name'=>'gg','price'=>1200)10 );11 function arr_sort($array,$key,$order="asc"){ //asc是升序 desc是降序12 $arr_nums=$arr=array();13 foreach($array as $k=>$v){14 $arr_nums[$k]=$v[$key];15 }16 if($order=='asc'){17 asort($arr_nums);18 }else{19 arsort($arr_nums);20 }21 foreach($arr_nums as $k=>$v){22 $arr[$k]=$array[$k];23 }24 print_r($arr);25 }26 arr_sort($array,'price');
在PHP中,内置一个排序的函数 array_multisort(),可以参考上一篇的数组排序
1 'aa','price'=>1050), 4 array('name'=>'bb','price'=>4300), 5 array('name'=>'cc','price'=>3100), 6 array('name'=>'dd','price'=>4900), 7 array('name'=>'ee','price'=>960), 8 array('name'=>'ff','price'=>6299), 9 array('name'=>'gg','price'=>1200)10 );11 //方法一12 function arr_sort($array,$key,$order="desc"){ //asc是升序 desc是降序13 $arr_nums=$arr=array();14 foreach($array as $k=>$v){15 $arr_nums[$k]=$v[$key];16 }17 if($order=='asc'){18 asort($arr_nums);19 }else{20 arsort($arr_nums);21 }22 foreach($arr_nums as $k=>$v){23 $arr[$k]=$array[$k];24 }25 print_r($arr);26 }27 arr_sort($array,'price');28 29 30 //方法二31 32 foreach ( $array as $key => $row ){33 $name[$key] = $row ['name'];34 $price[$key] = $row ['price'];35 }36 array_multisort($price, SORT_ASC, $name, SORT_DESC, $array);37 print_r($array);