/** * @purpose : 二維陣列排序
* @method name : array_sort()
* @parameters : array $array 要排序的二維陣列
* string $row 排序依據列
* string $type 排序型別[asc or desc]
* @return array : $array_temp 排好序的陣列
*/function array_sort($array,$row,$type
)
if($type == 'asc')
elseif($type='desc')
else
return
$array_temp
; }
注意:當需要排序的字段有重複的時候,這種辦法就不適用啦,因為 key 值必須唯一。例如將
$arr_test = [以 age 進行排序則不適用,排序後只會返回 3 個元素,因為有 2 個元素的 age 值是一樣的。0 => ['name'=>'name1','age'=>23],
1 => ['name'=>'name2','age'=>25],
2 => ['name'=>'name2','age'=>23],
3 => ['name'=>'name3','age'=>24]
];
可以使用下面的方法來排序:
/** *purpose : 二維陣列排序
*@parameters : array $arr 未處理的結果集
* string $row 需要排序的行
*@return : array $arr 排序後的結果
*/function array_sort($arr,$row
)
//將 $arr_tmp 按 age 從小到大排序
array_multisort($arr_tmp, sort_asc, $arr); //
將 $arr 按 $arr_tmp 的值 asc 排序
return
$arr
; }
array_multisort($arr1 , sort_asc, $arr2 , $arr3 ...) 其實就是將$arr1 排序後,後面的陣列都按照 $arr1 的順序就行排序。
例如,需要對下面這個陣列按照 sort欄位公升序進行排序。
//待排序的陣列
$res =[
13234567890 =>[
0 =>[
'id' => 1,
'phone' => 13234567890,
'answer' => '張三',
'sort' => 1,];
1 =>[
'id' => 2,
'phone' => 13234567890,
'answer' => '男',
'sort' => 3,];
2 =>[
'id' => 3,
'phone' => 13234567890,
'answer' => '25',
'sort' => 2,];
],];
//排序方法如下。
foreach ($res
as$key => $val
)
array_multisort($tmparr, sort_asc, $val
);
$resdata[$key] = $val
;}
array_multisort()的用法可參看:
多維陣列排序
在專案的開發應用中,我們幾乎是一直在和陣列打交道。常用的陣列函式有sort ksort 等相關函式,使用它們可以很方便的處理一維陣列,比如按鍵值降序和公升序的排列。但這些函式不是很方便的處理多維陣列。a array array sky blue array tree green 這是乙個簡單的二維陣...
php 多維陣列排序
之前在做乙個功能的時候,必須要把資料放到二維陣列裡並且排序,然後上網找找解決思路,這時候會用到array multisort函式,在那之前我都不知道有這個函式 array multisort 函式對多個陣列或多維陣列進行排序 先來看乙個例項 data array 0 array one 34,two...
PHP多維陣列排序
在php中,對各種陣列排序,歸功於陣列函式 sort ksort rsort asort 等,使用他們進行各種排序,但是用於多維陣列就沒那麼方便簡單。這篇文章介紹 usort 和 array multisort 處理多維陣列排序。對於多維緯度排序使用usort 函式 自定義的比較函式對陣列中的元素進...