首頁  >  文章  >  後端開發  >  如何按多個欄位對多維 PHP 陣列進行排序?

如何按多個欄位對多維 PHP 陣列進行排序?

DDD
DDD原創
2024-11-22 05:53:14917瀏覽

How Can I Sort a Multidimensional PHP Array by Multiple Fields?

以多個字段值對多維數組進行排序

在PHP 中,可以使用array_multisort() 來完成按多個字段值對多維數組進行排序。

考慮以下事項array:

$data = [
    [
        "destination" => "Sydney",
        "airlines" => "airline_1",
        "one_way_fare" => 100,
        "return_fare" => 300
    ],
    [
        "destination" => "Sydney",
        "airlines" => "airline_2",
        "one_way_fare" => 150,
        "return_fare" => 350
    ],
    [
        "destination" => "Sydney",
        "airlines" => "airline_3",
        "one_way_fare" => 180,
        "return_fare" => 380
    ]
];

要按return_fare 升序和one_way_fare 昇序對數組進行排序,請使用array_multisort():

// Extract specific fields into individual arrays
$return_fare = array_column($data, 'return_fare');
$one_way_fare = array_column($data, 'one_way_fare');

// Sort arrays using multiple criteria
array_multisort($return_fare, SORT_ASC, $one_way_fare, SORT_ASC, $data);

// Print sorted array
print_r($data);

array_multisort(array_column($data, 'return_fare'), SORT_ASC,
                array_column($data, 'one_way_fare'), SORT_ASC,
                $data);
替代方法:array_orderby()函數: 對於簡潔的解決方案,請考慮使用 array_orderby() 函數,它提供了 array_multisort() 的包裝器。 **array_column() 和 array_multisort()**:避免迭代數組,在排序之前使用 array_column()` 提取特定字段值。

以上是如何按多個欄位對多維 PHP 陣列進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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