[PHP7] 陣列排序

[PHP7] 陣列排序

輸出資料給前端前有時必須要資料處理,舉個例子:一份履歷表須列出公司名稱、到職時間、離職時間,必須要照到職時間的先後順序排列,此時就可以使用陣列排序。

範例

$sort_array=array();
// 學校名稱 1
$sort_array['0']['school']=$profile->field_resume_school_name1['und'][0]['value'];
// 入學日期與畢業日期 1
$sort_array['0']['time']=$profile->field_school_time_1['und'][0];
// 學校名稱 2
$sort_array['1']['school']=$profile->field_resume_school_name2['und'][0]['value'];
// 入學日期與畢業日期 2
$sort_array['1']['time']=$profile->field_school_time_2['und'][0];

陣列的內容如下

我們可以使用 PHP7 的 anonymous function 幫我們 sort

// ASC
usort($sort_array, function ($item1,$item2)
 {
      return $item1['time']['value'] <=> $item2['time']['value'];
 });

//DESC
usort($sort_array, function ($item1,$item2)
 {
      return $item2['time']['value'] <=> $item1['time']['value'];
 });

排序的結果如下

如果你不是 PHP7 版本可以參考 How to sort an array of associative arrays by value of a given key in PHP?
,相比較下 PHP7 的方法簡潔許多。