首页 >后端开发 >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