首頁 >後端開發 >php教程 >如何對 PHP 關聯數組的鍵進行自訂排序?

如何對 PHP 關聯數組的鍵進行自訂排序?

Susan Sarandon
Susan Sarandon原創
2024-12-21 03:56:10709瀏覽

How Can I Custom Sort the Keys of a PHP Associative Array?

自訂鍵對非分層關聯數組進行排序

在PHP 中,無法按字母順序或數字順序對關聯數組進行排序預設。但是,可以基於另一個陣列建立自訂排序順序。

實作自訂鍵排序的函數

建立執行自訂鍵的函數 -排序時,可以使用 array_merge() 或 array_replace() 函數。這兩個函數都接受兩個陣列作為輸入:第一個陣列指定所需鍵的所需順序,而第二個陣列包含要排序的實際資料。

下面的程式碼示範如何實作此函數:

function sortArrayByArray($inputArray, $sortKeysArray) {
  return array_merge(array_flip($sortKeysArray), $inputArray);
}

範例用法

考慮以下範例array:

$customer['address'] = '123 fake st';
$customer['name'] = 'Tim';
$customer['dob'] = '12/08/1986';
$customer['dontSortMe'] = 'this value doesnt need to be sorted';

要根據$sortKeysArray 中指定的鍵順序對此數組進行排序,您可以使用sortArrayByArray() 函數,如下所示:

$sortKeysArray = ['name', 'dob', 'address'];
$properOrderedArray = sortArrayByArray($customer, $sortKeysArray);

產生的$properOrderedArray將如下所示:

[
  'name' => 'Tim',
  'dob' => '12/08/1986',
  'address' => '123 fake st',
  'dontSortMe' => 'this value doesnt need to be sorted'
]

注意,鍵是根據指定的$sortKeysArray。被保留。不可排序的鍵(“dontSortMe”)附加到陣列的末尾。

透過使用此方法,您可以在 PHP 中實現非層級關聯數組的自訂鍵排序,確保數組鍵是以特定方式訂購。

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

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