首頁 >後端開發 >php教程 >如何使用 usort 和自訂比較函數按特定鍵對多維數組進行排序?

如何使用 usort 和自訂比較函數按特定鍵對多維數組進行排序?

Linda Hamilton
Linda Hamilton原創
2024-10-20 19:07:02594瀏覽

How to Sort Multidimensional Arrays by a Specific Key Using usort and Custom Comparison Function?

按鍵對多維數組進行排序

使用多維數組時的一個常見任務是需要根據特定鍵對它們進行排序。例如,考慮以下數組:

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
    ))

要按[status] 鍵對此數組進行排序,您可以使用usort 函數以及自訂比較函數:

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

// Sort the array using the custom comparison function
usort($array, "cmp");

透過定義cmp函數,您可以指定在排序期間應如何比較元素。在這種情況下,它比較兩個元素的 [status] 鍵,如果 $a['status'] 小於 $b['status'],則傳回 -1,如果相等則傳回 0,否則傳回 1。

usort 函數依比較函數的輸出依升序排列陣列元素。這允許您按所需的鍵對多維數組進行排序,在本例中為 [status]。

以上是如何使用 usort 和自訂比較函數按特定鍵對多維數組進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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