PHP如何基于一个数组的值匹配另一数组的键合并多维数组
回答
PHP没有原生的单个函数可以直接完成这个特定逻辑的数组合并,但可以通过几个内置函数组合快速实现,代码复杂度很低:
实现代码示例
写法1:array_map实现
// 第一步:将数组1转换为 品牌 => 车辆类型 的映射数组 $typeMap = array_column($arr1, 'type', 'make'); // 第二步:遍历数组2合并对应字段 $result = array_map(function($item, $type) { $item['type'] = $type; return $item; }, $arr2, $typeMap);
写法2:foreach实现(兼容性更好)
$typeMap = array_column($arr1, 'type', 'make'); foreach ($arr2 as $make => &$info) { // 加??判断兼容数组1没有对应品牌的异常场景 $info['type'] = $typeMap[$make] ?? ''; } // 解除引用避免后续逻辑出错 unset($info);
两种写法都可以得到你需要的合并结果。
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

