一維數組排序能夠使用asort、ksort等一些方法進程排序,相對來講比較簡單。二維數組的排序怎麼實現呢?使用array_multisort和usort能夠實現. 數組
例如像下面的數組: 函數
但願能按照age從小到大進行排序。筆者整理了兩個方法出來,分享給你們。 spa
一、使用array_multisort 排序
使用這個方法,會比較麻煩些,要將age提取出來存儲到一維數組裏,而後按照age升序排列。具體代碼以下: 索引
array_multisort($ages, SORT_ASC, $users); 進程
執行後,$users就是排序好的數組了,能夠打印出來看看。若是須要先按年齡升序排列,再按照名稱升序排列,方法同上,就是多提取一個名稱數組出來,最後的排序方法這樣調用: io
二、使用usort function
使用這個方法最大的好處就是能夠自定義一些比較複雜的排序方法。例如按照名稱的長度降序排列: 匿名函數
這裏使用了匿名函數,若是有須要也能夠單獨提取出來。其中$a, $b能夠理解爲$users數組下的元素,能夠直接索引name值,並計算長度,然後比較長度就能夠了。 foreach
筆者更喜歡第二種方法,由於少了提取排序內容到一維數組的步驟,並且排序方法更爲靈活。