首頁 >後端開發 >php教程 >PHP實作多維數組依照某個鍵值排序的方法

PHP實作多維數組依照某個鍵值排序的方法

墨辰丷
墨辰丷原創
2018-05-23 14:38:0010777瀏覽

這篇文章主要介紹了PHP程式實作多維數組按照某個鍵值排序的方法,結合實例形式分析了array_multisort和array_sort 2種排序操作方法,需要的朋友可以參考下

本文實例講述了PHP程式實作多維數組依照某個鍵值排序的方法。分享給大家供大家參考,具體如下:

實作對多維數組依照某個鍵值排序的兩種解決方法(array_multisortarray_sort#):

第一種:

array_multisort()函數對多個陣列或多維數組進行排序。

//对数组$hotcat按照count键值大小降序进行排序;
$hotcat =array(
 array('1501'=>array('catid'=>'1546','catname'=>'数组排序 一级','count'=>'588')),
 array('1501'=>array('catid'=>'1546','catname'=>'数组排序二级','count'=>'588')),
 array('1501'=>array('catid'=>'1546','catname'=>'数组排序 三级','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遞增。所以當陣列排序之後並且需要保留之前的所有鍵名的話,那就推薦使用第二種方法.

以上就是本文的全部內容,希望對大家的學習有所幫助。


相關推薦:

php簡單取得複選框值的方法_php技巧

php similar_text()函數的定義與用法_php技巧

#phpwind放自動註冊方法_javascript技巧

##

以上是PHP實作多維數組依照某個鍵值排序的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn