首页 > 解决方案 > 在 PHP 中使用另一个数组排序数组的最佳方法是什么?

问题描述

假设我有一个要排序的数组,并且顺序不是可计算的,而是由另一个数组给出,该数组按所需顺序列出了键:

$ordering_array = [
    'c',
    'a',
    'k',
    'e',
];

作为一个额外的复杂因素,并非所有这些键都可能出现在我的数组中以进行排序:

$given_array = [
    'a' => 'value',
    'c' => 'value',
    'e' => 'value',
];

实现这一目标的最干净/最快的方法是什么?

我的方法是:

$new_array = array_fill_keys($ordering_array, NULL);

foreach ($given_array as $key => $value) {
  $new_array[$key] = $value;
}

$new_array = array_filter($new_array);

有没有更好的办法?

标签: php

解决方案


你可以foreacharray_replace()

$new_array = array_fill_keys($ordering_array, NULL);
$new_array = array_replace($new_array, $given_array);
$new_array = array_filter($new_array);

推荐阅读