工作中用到了一個相關的問題,搜索了百度有好多種方法,但是不同方法對應的函數不同,試了幾個發現還是下面這個比較好用:
array_multisort($sortarray,SortRank,$sortlist)
$sortarray是用來存儲排序字段的數組,SortRank是排序條件,有以下兩種:
1.SORT_ASC - 默認,按升序排列。(A-Z)
2.SORT_DESC - 按降序排列。(Z-A)
$sortlist是需要排序的數組,以遇到的問題為例:
list = [{"name": "首頁","sort": 1},{"name": "企業管理","sort": 2},{"name": "訂單管理","sort": 3}]
foreach($list as $list2){
$sort[]=$list2["sort"];
}
array_multisort($sort,SORT_ASC,$list);
PS:第一次用這個方法的時候以為需要 $new_list = array_multisort($sort,SORT_ASC,$list),
其實不需要,這個函數排序過后,直接使用list即可,否則強行取變量取出來的可能只有true或者false
PS +1 :這個方法其實比較適用於二維數組,維數增多以后用起來是個災難。。。