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

如何将嵌套Array内层单元素数组的键值对合并至外层?

解决PHP嵌套数组合并问题

你要处理的是把data字段下的多个单元素子数组合并成一个统一的关联数组,这里有几种实用的实现方式,覆盖不同场景需求:

方法一:foreach循环(直观易上手)

这是最基础的写法,逻辑清晰,适合新手理解整个合并过程:

// 你的原始数组
$originalArray = [
    'data' => [
        ['degree_level' => "Bachelor's"],
        ['field_of_study' => 'Science'],
        ['grade_point' => 3],
        ['criteria' => 'desired']
    ]
];

// 初始化目标结构
$mergedArray = ['data' => []];

// 遍历每个子数组,逐个合并到目标数组
foreach ($originalArray['data'] as $item) {
    $mergedArray['data'] = array_merge($mergedArray['data'], $item);
}

// 查看结果
print_r($mergedArray);

方法二:array_reduce函数(函数式风格)

如果偏好简洁的函数式写法,可以用array_reduce一行完成合并逻辑:

$mergedArray = [
    'data' => array_reduce(
        $originalArray['data'],
        function ($carry, $item) {
            return array_merge($carry, $item);
        },
        [] // 初始值设为空数组
    )
];

print_r($mergedArray);

方法三:展开运算符+array_merge(最简洁)

PHP 5.6及以上版本支持展开运算符(...),可以把数组元素直接展开作为array_merge的参数,写法非常精简:

$mergedArray = [
    'data' => array_merge(...$originalArray['data'])
];

print_r($mergedArray);

小提醒

  • 如果子数组存在重复键名,后面的子数组键值会覆盖前面的(这是array_merge的默认特性),如果你的业务需要保留所有重复键,得额外添加处理逻辑。
  • 展开运算符的方法要求PHP版本≥5.6,若你的运行环境版本较低,建议选用前两种方法。

内容的提问来源于stack exchange,提问作者Rupesh Ranjan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:50:50