分享一段代码,实现php中二维数组的排序。
代码:
<?php /** * 二维数组排序 * by www.jb200.com */ $good = array(); for($i = 0; $i<7 ; $i++ ){ $good[$i]['price'] = rand(1,10000); $good[$i]['hot'] = rand(1,100); $good[$i]['follow'] = rand(1,1000); } echo '<pre>'; print_r($good); echo '</pre>'; $hot=array(); $follow=array(); foreach($good as $k=>$v){ $hot[$k] = $v['hot']; $follow[$k] = $v['follow']; } //二维数组排序 //方法一,先按hot字段降序 ,再按follow降序 array_multisort($hot,SORT_DESC,$follow,SORT_DESC,$good); echo '<pre>'; print_r($good); echo '</pre>'; //方法二 function xx($a, $b) { if ($a['price'] == $b['price']) { return ($a['hot'] < $b['hot']) ? 1 : -1; ; } return ($a['price'] < $b['price']) ? 1 : -1; } $a = array( 0=>array('price'=>123,'hot'=>34543), 1=>array('price'=>434,'hot'=>234), 2=>array('price'=>42,'hot'=>2232), 3=>array('price'=>42,'hot'=>235432), 4=>array('price'=>33443,'hot'=>12), 4=>array('price'=>434,'hot'=>1211), ); usort($a, 'xx'); echo '<pre>'; print_r($a); echo '</pre>';
>>> 更多内容,请查看 php数组排序方法大全 <<<