php數組排序的函數有哪些「php多維數組排序函數」

如果你經常寫 PHP,要說你沒用過數組,那簡直是不可能的。PHP 一個數組可以走遍大街小巷,行遍萬水千山。數組相關的函數也馬虎不得,如影隨形。

今天說說一個稍顯棘手的問題,多維數組的排序。

3分鐘短文 | PHP 多維數組按值排序,別抓狂看這裡

學習時間

比如下面的數組,

3分鐘短文 | PHP 多維數組按值排序,別抓狂看這裡

如果想要根據 order 的值進行排序(升序,降序),怎麼做呢?

你需要使用 usort 函數,且需要聲明一個回調函數:

function sortByOrder($a, $b) {
    return $a['order'] - $b['order'];
}

usort($myArray, 'sortByOrder');

這在 PHP 5.2 以及早期的版本內如此使用,之後的 PHP 版本,可以直接使用匿名函數,簡寫如下:

usort($myArray, function($a, $b) {
    return $a['order'] - $b['order'];
});

隨著 PHP 版本的迭代,越來越多的新特性添加進去,特別是 PHP 7 以後的太空艙操作符,給這樣的回調函數提供了更靈活簡便的用法:

usort($myArray, function($a, $b) {
    return $a['order'] <=> $b['order'];
});

由特殊到一般

上面的函數處理都是針對特定的數組進行的,現在我們把情形推向一般,寫一個可以通用的處理函數,可以用於對多位數組的排序處理:

3分鐘短文 | PHP 多維數組按值排序,別抓狂看這裡

特別地,如果你需要保留排序前後的鍵值索引關係,那麼就要使用 uasort 函數了。用法與 usort 同。

寫在最後

因為處理的數組結構不可確定,在實際使用中,回調函數內開發者可靈活操作,已達到排序的目的。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/284423.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-22 15:07
下一篇 2024-12-22 15:07

相關推薦

發表回復

登錄後才能評論