php - 在 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);
有没有更好的办法?
解决方案
你可以foreach
用array_replace()
$new_array = array_fill_keys($ordering_array, NULL);
$new_array = array_replace($new_array, $given_array);
$new_array = array_filter($new_array);
推荐阅读
- node.js - 在nodejs中的Firebase Functions HTTPS请求中报告错误的正确方法
- firebase - 如何在 Firestore 中为 Flutter 应用查询最近的地理点?
- ios - iOS 14 应用程序开发:如何避免应用程序删除警报出现空字符串(删除/移动到应用程序库的警报)?
- json - 颤振 | 为什么我的 json 文件在我尝试访问它时会转换为 firebase 上的文件夹?
- android - Android.Clean Arch。将数据从域发送到数据层
- python - 如何在 Tkinter 中访问超出窗口大小的条目
- javascript - 在 Javascript 中运行 PHP
- javascript - 如何防止javascript触发点击事件队列
- javascript - 数据驱动方法的量角器故障和浏览器处理
- reactjs - Gatsby Netlify 构建错误:无法解析“/opt/build/repo/src/templates”中的“../components/GridTemplate/GridTemplate.js”