想要實現二維陣列中根據某個字段排序,一般可以通過陣列迴圈對比的方式實現。這裡介紹一種更簡單的方法,直接通過php函式實現。
array_multisort() :可以用來一次對多個陣列進行排序,或者根據某一維或多維對多維陣列進行排序。
詳細介紹可參考php手冊:
1、單個字段排序:
$data=[
['id'
=>1,
'name'
=>
'張三'
,'sort'
=>60]
,['id'
=>2,
'name'
=>
'李四'
,'sort'
=>40]
,['id'
=>3,
'name'
=>
'王五'
,'sort'
=>80]
,];// 先取出要排序的字段的值
$sort
=array_column
($data
,'sort');
// 按照sort欄位公升序 其中sort_asc表示公升序 sort_desc表示降序
array_multisort
($sort
,sort_asc
,$data);
// 輸出結果
var_dump
($data
);
2、多個字段排序:
$data=[
['id'
=>1,
'name'
=>
'張三'
,'sort'
=>60]
,['id'
=>2,
'name'
=>
'李四'
,'sort'
=>60]
,['id'
=>3,
'name'
=>
'王五'
,'sort'
=>80]
,];// 先取出要排序的字段的值
$sort
=array_column
($data
,'sort');
$name
=array_column
($data
,'name');
// 先按照sort欄位公升序,再按照name欄位降序
array_multisort
($sort
,sort_asc
,$name
,sort_desc
,$data);
// 輸出結果
var_dump
($data
);
PHP 二維陣列根據某個字段排序
php view plain copy 二維陣列根據某個字段排序 功能 按照使用者的年齡倒序排序 author ruxing.li header content type text html charset utf 8 arrusers array array id 1,name 張三 age 25...
PHP二維陣列根據某個字段排序
二維陣列根據某個字段排序 功能 按照使用者的年齡倒序排序 author ruxing.li header content type text html charset utf 8 arrusers array array id 1,name 張三 age 25,array id 2,name 李四 ...
PHP 二維陣列根據某個字段排序
本文記錄的要實現的功能類似於 mysql 中的 order by,上個專案中有遇到這樣的乙個需求。要求 從兩個不同的表中獲取各自的4條資料,然後整合 array merge 成乙個陣列,再根據資料的建立時間降序排序取前4條。遇到這個要求的時候就不是 order by 能解決的問題了。因此翻看 php...