首頁 >後端開發 >php教程 >如何根據自訂順序對 PHP 陣列進行排序?

如何根據自訂順序對 PHP 陣列進行排序?

Patricia Arquette
Patricia Arquette原創
2024-12-24 08:11:15991瀏覽

How to Sort a PHP Array Based on a Custom Order?

PHP 中的自訂順序數組排序

PHP 中的數組排序通常是透過基於比較的演算法完成的。但是,在某些情況下,您需要根據預先定義的自訂順序對陣列進行排序。

考慮一個陣列數組,其中每個子數組包含兩個鍵:「id」和「title」。您希望以特定順序對主數組進行排序,例如:

[3452342, 5867867, 7867867, 1231233]

要實現此目的,您可以使用 usort() 函數。此函數可讓您指定一個比較函數,該函數定義如何比較陣列元素。

在這種情況下,比較函數使用閉包來比較自訂訂單數組中「id」值的位置( $order):

usort($array, function ($a, $b) use ($order) {
    $pos_a = array_search($a['id'], $order);
    $pos_b = array_search($b['id'], $order);
    return $pos_a - $pos_b;
});

比較函數將$order 數組中“id”值的位置分配給$pos_a 和$pos_b。然後減去這些位置來確定順序(如果 $pos_a 小於 $pos_b,則 $a 位於 $b 之前)。

透過使用自訂順序數組和比較函數,您可以有效地對數組進行排序按預定義順序排列的數組。

以上是如何根據自訂順序對 PHP 陣列進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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