首頁 > 後端開發 > php教程 > 如何在 PHP 中透過一個或多個鍵對多維數組進行排序?

如何在 PHP 中透過一個或多個鍵對多維數組進行排序?

DDD
發布: 2025-01-05 12:34:43
原創
885 人瀏覽過

How can I sort multi-dimensional arrays in PHP by one or more keys?

按值對多維數組進行排序

使用多維數組時,可能需要根據特定鍵的值對數組進行排序。例如,如果您有一個包含圖像清單的數組,您可能想要按日期或大小對它們進行排序。

按單一鍵排序

按單一鍵對陣列進行排序關鍵,您可以使用 usort() 函數。此函數有兩個參數:要排序的陣列和排序函數。排序函數必須接受兩個參數,這兩個參數代表要比較的兩個元素。

例如,假設我們有以下數組,我們想要按「order」鍵的值對其進行排序:

Array
(
    [0] => Array
        (
            [hashtag] => a7e87329b5eab8578f4f1098a152d6f4
            [title] => Flower
            [order] => 3
        )

    [1] => Array
        (
            [hashtag] => b24ce0cd392a5b0b8dedc66c25213594
            [title] => Free
            [order] => 2
        )

    [2] => Array
        (
            [hashtag] => e7d31fc0602fb2ede144d18cdffd816b
            [title] => Ready
            [order] => 1
        )
)
登入後複製

要對這個數組進行排序,我們可以使用下面的排序函數:

function sortByOrder($a, $b) {
    if ($a['order'] > $b['order']) {
        return 1;
    } elseif ($a['order'] < $b['order']) {
        return -1;
    }
    return 0;
}
登入後複製

然後,我們可以傳遞這個函數傳遞給usort()函數:

usort($myArray, 'sortByOrder');
登入後複製

排序後,陣列將依照「order」鍵的值排序:

Array
(
    [2] => Array
        (
            [hashtag] => e7d31fc0602fb2ede144d18cdffd816b
            [title] => Ready
            [order] => 1
        )

    [1] => Array
        (
            [hashtag] => b24ce0cd392a5b0b8dedc66c25213594
            [title] => Free
            [order] => 2
        )

    [0] => Array
        (
            [hashtag] => a7e87329b5eab8578f4f1098a152d6f4
            [title] => Flower
            [order] => 3
        )
)
登入後複製

按多個鍵排序

要按多個鍵將陣列排序,可以使用以下方法:

  1. 建立一個比較第一個鍵的值的排序函數。
  2. 如果第一個鍵的值相等,則比較第二個鍵的值。
  3. 繼續比較後續鍵的值,直到找到了差異。

例如,假設我們有以下數組,我們想要按「order」鍵的值進行排序,然後透過「title」鍵的值:

Array
(
    [0] => Array
        (
            [hashtag] => a7e87329b5eab8578f4f1098a152d6f4
            [title] => Flower
            [order] => 1
        )

    [1] => Array
        (
            [hashtag] => b24ce0cd392a5b0b8dedc66c25213594
            [title] => Free
            [order] => 2
        )

    [2] => Array
        (
            [hashtag] => e7d31fc0602fb2ede144d18cdffd816b
            [title] => Free
            [order] => 2
        )

    [3] => Array
        (
            [hashtag] => c1ede105cf8a54bbfb9f06542a9971bb
            [title] => Ready
            [order] => 3
        )
)
登入後複製

要對該數組進行排序,我們可以使用以下排序函數:

以上是如何在 PHP 中透過一個或多個鍵對多維數組進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板