***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陣列函式(一)陣列排序函式PHP
- PHP中二維陣列與多維陣列PHP陣列
- php 對二維陣列的某個欄位公用排序的方法PHP陣列排序
- PHP 實現按奇偶排序陣列PHP排序陣列
- 二維陣列排序陣列排序
- php陣列方法PHP陣列
- PHP 多維陣列排序-按某個 key 的值PHP陣列排序
- php二維陣列改鍵名的方法PHP陣列
- PHP二維陣列排序(感謝滔哥lvtao.net)PHP陣列排序
- 二維陣列行排序陣列排序
- PHP的的陣列和比較符PHP陣列
- PHP一維陣列轉二維陣列正規表示式PHP陣列
- PHP陣列多個欄位分別排序PHP陣列排序
- php 陣列根據元素從小到大排序PHP陣列排序
- PHP 字串陣列按照拼音排序的問題PHP字串陣列排序
- Php陣列PHP陣列
- java之陣列的索引,排序以及二維陣列Java陣列索引排序
- php中使用while遍歷二維陣列的方法PHPWhile陣列
- PHP專題-PHP陣列PHP陣列
- 多維陣列排序陣列排序
- php 一維陣列變多維PHP陣列
- PHP把MYSQL重複ID二維陣列重組為三維陣列PHPMySql陣列
- PHP 陣列系列PHP陣列
- php 清空陣列PHP陣列
- 為什麼處理排序陣列比未排序陣列快排序陣列
- php多維陣列去除空元素PHP陣列
- PHP二維關聯陣列的遍歷方式PHP陣列
- PHP陣列轉換為js陣列PHP陣列JS
- php多維陣列去除重複值的方法PHP陣列
- 陣列二:使用陣列可變函式為陣列排序陣列函式排序
- PHP的SPL擴充套件庫(二)物件陣列與陣列迭代器PHP套件物件陣列