實現對多維數組按照某個鍵值排序的兩種解決方法(array_multisort和array_sort):
第一種:array_multisort()函數對多個數組或多維數組進行排序。
//對數組$hotcat按照count鍵值大小降序進行排序;
$hotcat =array(
array('1501'=>array('catid'=>'1546','catname'=>'續夢PHP 一級','count'=>'588')),
array('1501'=>array('catid'=>'1546','catname'=>'續夢PHP 二級','count'=>'588')),
array('1501'=>array('catid'=>'1546','catname'=>'續夢PHP 三級','count'=>'588'))
);
//提取列數組;
foreach ($hotcat as $key => $val) {
$tmp[$key] = $row['username'];
}
array_multisort($tmp,SORT_DESC,$hotcat);此處對數組進行降序排列;SORT_DESC按降序排列
第二種:自定義方法array_sort()進行排序
//指定數組以$keys鍵值排序
function array_sort($array,$keys,$type='asc'){
//$array為要排序的數組,$keys為要用來排序的鍵名,$type默認為升序排序
$keysvalue = $new_array = array();
foreach ($array as $k=>$v){
$keysvalue[$k] = $v[$keys];
}
if($type == 'asc'){
asort($keysvalue);
}else{
arsort($keysvalue);
}
reset($keysvalue);
foreach ($keysvalue as $k=>$v){
$new_array[$k] = $array[$k];
}
return $new_array;
}
$hot_cat = array_sort($hot_cat,'count','desc'); //此處對數組進行降序排列
溫馨提醒:第一種方法有個弊端,如果你的數組如果是字符串鍵名將被保留,但是數字鍵將被重新索引,從0開始,並以1遞增。所以當數組排序之后並且需要保留之前的所有鍵名的話,那就
推薦使用第二種方法: