首頁 > 後端開發 > php教程 > 如何在 PHP 中按值對多維數組進行排序?

如何在 PHP 中按值對多維數組進行排序?

Mary-Kate Olsen
發布: 2024-12-23 12:21:11
原創
884 人瀏覽過

How to Sort a Multi-dimensional Array by Value in PHP?

按值對多維數組進行排序

在多維數組中,您可能會遇到需要根據值對其元素進行排序的需求特定鍵的值。例如,考慮以下陣列:

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
        )
)
登入後複製

按「order」鍵排序

要按「order」鍵對陣列進行排序,您可以使用usort()函數。以下是其用法的全面細分:

PHP 5.2 或更早版本:

先定義一個排序函數:

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

PHP 5.3及更高版本:

使用匿名函數:

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

PHP 7:

利用太空船運算子:

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

利用太空船運算子:

PHP 7.4:

usort($myArray, fn($a, $b) => $a['order'] <=> $b['order']);
登入後複製

使用箭頭函數:

多維排序:

usort($myArray, function($a, $b) {
    $retval = $a['order'] <=> $b['order'];
    if ($retval == 0) {
        $retval = $a['suborder'] <=> $b['suborder'];
        if ($retval == 0) {
            $retval = $a['details']['subsuborder'] <=> $b['details']['subsuborder'];
        }
    }
    return $retval;
});
登入後複製

對於多維排序,修改排序函數以在第一維排序個元素為零時引用後續排序元素。例如:

鍵關聯

如果需要維護鍵關聯,請使用 uasort() 而不是 usort()。

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

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