【发布时间】:2018-12-01 14:09:28
【问题描述】:
假设我有一个要排序的数组,并且顺序不是可计算的,而是由另一个数组给出,该数组按所需顺序列出了键:
$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);
有没有更好的办法?
【问题讨论】:
-
为什么不在代码审查中发帖?
-
@C2486 作为示例代码将被关闭。
-
请注意,
array_filter()会以极端的偏见扼杀所有falsey值。
标签: php