首頁 php教程 PHP开发 php二維數組排序方法(array_multisort usort)

php二維數組排序方法(array_multisort usort)

Jan 06, 2017 pm 04:48 PM

例如像下面的陣列:

$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值,併計算長度,而後比較長度就可以了。

筆者喜歡第二種方法,因為少了提取排序內容到一維數組的步驟,而且排序方法更為靈活。

更多php二維數組排序方法(array_multisort usort)相關文章請關注PHP中文網!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1272
29
C# 教程
1252
24