***PHP陣列排序+php二維陣列排序方法(PHP比較器)
PHP – 一維陣列的排序函式
在本節中,我們將學習如下 PHP 陣列排序函式:
- sort() – 以升序對陣列排序
- rsort() – 以降序對陣列排序
- asort() – 根據值,以升序對關聯陣列進行排序
- ksort() – 根據鍵,以升序對關聯陣列進行排序
- arsort() – 根據值,以降序對關聯陣列進行排序
- krsort() – 根據鍵,以降序對關聯陣列進行排序
一維陣列排序可以使用asort、ksort等一些方法程式排序,相對來說比較簡單。二維陣列的排序怎麼實現呢?使用array_multisort和usort可以實現
例如像下面的陣列:
程式碼如下:
$users = array(
array(`name` => `tom`, `age` => 20)
, array(`name` => `anny`, `age` => 18)
, array(`name` => `jack`, `age` => 22)
);
希望能按照age從小到大進行排序。筆者整理了兩個方法出來,分享給大家。
1、使用array_multisort
使用這個方法,會比較麻煩些,要將age提取出來儲存到一維陣列裡,然後按照age升序排列。具體程式碼如下:
程式碼如下:
$ages = array();
foreach ($users as $user) {
$ages[] = $user[`age`];
}
array_multisort($ages, SORT_ASC, $users);
執行後,$users就是排序好的陣列了,可以列印出來看看。如果需要先按年齡升序排列,再按照名稱升序排列,方法同上,就是多提取一個名稱陣列出來,最後的排序方法這樣呼叫:
程式碼如下:
array_multisort($ages, SORT_ASC, $names, SORT_ASC, $users);
2、使用usort
使用這個方法最大的好處就是可以自定義一些比較複雜的排序方法。例如按照名稱的長度降序排列:
程式碼如下:
usort($users, function($a, $b) {
$al = strlen($a[`name`]);
$bl = strlen($b[`name`]);
if ($al == $bl)
return 0;
return ($al > $bl) ? -1 : 1;
});
這裡使用了匿名函式,如果有需要也可以單獨提取出來。其中$a, $b可以理解為$users陣列下的元素,可以直接索引name值,並計算長度,而後比較長度就可以了。
筆者更喜歡第二種方法,因為少了提取排序內容到一維陣列的步驟,而且排序方法更為靈活。
如何聯絡我:【萬里虎】www.bravetiger.cn
【QQ】3396726884 (諮詢問題100元起,幫助解決問題500元起)
【部落格】http://www.cnblogs.com/kenshinobiy/
相關文章
- php 二維陣列排序PHP陣列排序
- PHP 多維陣列排序PHP陣列排序
- PHP 二維陣列, 按某一個欄位排序PHP陣列排序
- PHP 陣列排序(複雜字串)PHP陣列排序字串
- 陣列排序函式-php陣列函式(一)陣列排序函式PHP
- PHP中二維陣列與多維陣列PHP陣列
- PHP 實現按奇偶排序陣列PHP排序陣列
- 二維陣列排序陣列排序
- PHP 多維陣列排序-按某個 key 的值PHP陣列排序
- php二維陣列改鍵名的方法PHP陣列
- 二維陣列行排序陣列排序
- PHP陣列多個欄位分別排序PHP陣列排序
- php 陣列根據元素從小到大排序PHP陣列排序
- PHP專題-PHP陣列PHP陣列
- PHP 陣列系列PHP陣列
- php 清空陣列PHP陣列
- 多維陣列排序陣列排序
- 為什麼處理排序陣列比未排序陣列快排序陣列
- PHP二維關聯陣列的遍歷方式PHP陣列
- PHP陣列轉換為js陣列PHP陣列JS
- PHP:常用PHP陣列操作函式PHP陣列函式
- php多維陣列去除重複值的方法PHP陣列
- php陣列問題PHP陣列
- PHP 陣列合並PHP陣列
- PHP的SPL擴充套件庫(二)物件陣列與陣列迭代器PHP套件物件陣列
- 陣列二:使用陣列可變函式為陣列排序陣列函式排序
- PHP 陣列搜尋 sdk & 陣列分頁PHP陣列
- PHP xml 轉陣列 陣列轉 xml 操作PHPXML陣列
- 陣列排序陣列排序
- 二位陣列排序陣列排序
- 江湖救急,一個PHP二維陣列的改造!PHP陣列
- 簽名驗證,GO&PHP解析json不一致方案,php多維陣列遞迴排序GoPHPJSON陣列遞迴排序
- php手冊 php陣列的遍歷有哪幾種方式?php陣列如何遍歷?PHP陣列
- 二維陣列排序函式array_multisort()陣列排序函式
- PHP 陣列函式妙用PHP陣列函式
- PHP 陣列 & 字串處理PHP陣列字串
- PHP 陣列使用之道PHP陣列
- PHP學習3——陣列PHP陣列
- 巧用 PHP 陣列函式PHP陣列函式