首頁  >  文章  >  後端開發  >  如何按鍵對多維數組進行排序:分步解決方案?

如何按鍵對多維數組進行排序:分步解決方案?

Barbara Streisand
Barbara Streisand原創
2024-10-20 19:02:02587瀏覽

How to Sort a Multidimensional Array by Key: A Step-by-Step Solution?

按鍵對多維數組進行排序:綜合指南

按特定順序排列多維數組的元素可能是常見要求在編程中。按特定鍵排序提供了組織和檢索資料的有效方法。

考慮以下包含邀請的多維數組:

Array (
[0] => Array
    (
        [iid] => 1
        [invitee] => 174
        [nid] => 324343
        [showtime] => 2010-05-09 15:15:00
        [location] => 13
        [status] => 1
        [created] => 2010-05-09 15:05:00
        [updated] => 2010-05-09 16:24:00
    )

[1] => Array
    (
        [iid] => 1
        [invitee] => 220
        [nid] => 21232
        [showtime] => 2010-05-09 15:15:00
        [location] => 12
        [status] => 0
        [created] => 2010-05-10 18:11:00
        [updated] => 2010-05-10 18:11:00
    ))

要按「狀態」鍵對此數組進行排序,我們可以使用 usort() 函數和自訂比較函數。

自訂比較函數

比較函數透過比較元素的鍵來決定元素的順序。這是一個基於「status」鍵進行比較的函數:

function cmp($a, $b) {
    if ($a['status'] == $b['status']) {
        return 0;
    }
    return ($a['status'] < $b['status']) ? -1 : 1;
}

當$a 應該在$b 之前時,函數傳回-1;當$a 應該在$b 之後時,函數傳回1;當$a 應該在$b 之後時,函數傳回0

對陣列進行排序

我們現在可以使用usort() 對陣列進行排序:

usort($array, "cmp");

這將對陣列進行排序「狀態」鍵依升序排列。如果我們想要顛倒順序,我們可以使用 rsort():

rsort($array, "cmp");

透過利用提供的比較函數和排序函數,我們可以輕鬆地按任何所需的鍵對多維數組進行排序。

以上是如何按鍵對多維數組進行排序:分步解決方案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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