自訂鍵對非分層關聯數組進行排序
在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中文網其他相關文章!