You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何不使用循环合并多个数组,保留键并聚合同键值为数组

实现方案

直接使用PHP内置的array_merge_recursive配合array_map即可实现,无需手动编写循环逻辑:

// 固定数量输入数组的场景
$result = array_map(fn($item) => (array)$item, array_merge_recursive($array1, $array2, $array3));

// 输入数组数量不固定的通用场景
$inputArrays = [$array1, $array2, $array3];
$result = array_map(fn($item) => (array)$item, array_merge_recursive(...$inputArrays));

如果需要兼容PHP7.4以下版本,将箭头函数替换为匿名函数即可:

$result = array_map(function($item) {
    return (array)$item;
}, array_merge_recursive($array1, $array2, $array3));

原理说明

  • array_merge_recursive会自动合并多个数组的同名字符串键:同一个键在多个数组中存在时,会将对应值合并为数组,仅出现一次的键会保留原始值
  • 外层的array_map对所有值做统一格式处理,将仅出现一次的原始值转为单元素数组,完全匹配结果格式要求
  • 全程使用PHP内置函数实现,无显式自定义循环逻辑,符合需求

内容的提问来源于stack exchange,提问作者Lou Nik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 06:27:00