php - 如何“很好地”映射 PHP 数组的键?
问题描述
我有一个从一个系统传入的键值数组,并希望将具有不同键的相同值发送到另一个系统。也就是说,我们有
$map = [
'sys_a_1' => 'sys_b_1',
'sys_a_2' => 'sys_b_2',
];
$data = [
'sys_a_1' => 'data_1',
'sys_a_2' => 'data_2',
];
我们想要
$result = [
'sys_b_1' => 'data_1',
'sys_b_2' => 'data_2',
];
我可以用一个循环来做到这一点:
foreach ($map as $from => $to) {
if (!empty($data[$from])) {
$result[$to] = $data[$from];
}
}
但它只是惹恼了我,没有array_something()
办法做到这一点。array_combine($map, array_intersect_key($data, $map))
几乎做到了,但array_intersect_key
没有重新排序,所以它会完全失控。
解决方案
怎么样array_combine()
,
<?php
$map = [
'sys_a_1' => 'sys_b_1',
'sys_a_2' => 'sys_b_2',
];
$data = [
'sys_a_1' => 'data_1',
'sys_a_2' => 'data_2',
];
$result = array_combine($map,$data);
print_r($result);
?>
推荐阅读
- unity3d - 如何在 Unity 中替换层次结构中的某些内容?
- keras - 如何在 keras 自定义模型中使用 scklearn RandomForestRegressor 模型?
- tensorflow - memmap 数组到 pytorch 和梯度累积
- python - 多层次查询深度嵌套复杂的 JSON 数据
- json - 如何从 Json 文件 discord.py 中读取数据
- reactjs - 在 React.js 中将用户数据从 useEffect() 保存到 useContext() 之前加载页面
- python - 如何将结构中的给定残基突变为 biopythhon 中的不同氨基酸?
- kernel - 是否有 64 位 UEFI ELF 引导加载程序?
- winapi - MFC:如何保存和恢复 CEditView 滚动位置以便正确滚动内容?
- python - 更改顺序 x 轴 matplotlib