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

PHP如何将多个数组合并为带指定键名的多维数组

实现方案

你之前使用array_map(null, $arr_a, $arr_b)的写法会将多个数组同索引位置的值打包,相当于做了二维数组的矩阵转置,生成的结构维度和需求不符。要给子数组绑定指定键名,直接用array_combine做键值映射即可,写法简洁且支持任意多的待合并源数组。

通用可扩展代码

把所有待处理的同结构源数组统一放到集合中,后续新增数组只需要往集合里追加,不需要修改核心处理逻辑:

// 待合并的源数组集合
$sourceList = [$arr_a, $arr_b];
$keys = ['key1', 'key2', 'key3'];

// PHP 7.4+ 支持箭头函数的写法
$output = array_map(fn($item) => array_combine($keys, $item), $sourceList);

// 低版本PHP兼容写法
$output = array_map(function($item) use ($keys) {
    return array_combine($keys, $item);
}, $sourceList);

如果是固定两个源数组的场景,也可以直接写死映射,逻辑更直观:

$output = [
    array_combine($keys, $arr_a),
    array_combine($keys, $arr_b)
];

运行结果

上述代码执行后生成的结构和预期完全一致:

Array
(
    [0] => Array
        (
            [key1] => a1
            [key2] => a2
            [key3] => a3
        )

    [1] => Array
        (
            [key1] => b1
            [key2] => b2
            [key3] => b3
        )

)

注意:使用时请保证每个源数组的元素长度和$keys的元素长度完全一致,否则array_combine会抛出运行时警告。

内容的提问来源于stack exchange,提问作者Md Jahid Khan Limon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 16:51:19