自定义键对非分层关联数组进行排序
在 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中文网其他相关文章!