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

PHP如何按索引合并两个同键数组?

合并两个索引对应数组为子数组的解决方案

array_merge和array_merge_recursive对数字索引数组的处理逻辑是重新索引并追加元素,而非按索引配对组合。要实现将两个数组同索引元素组成子数组的需求,最简洁的方式是使用array_map函数:

代码实现

// 定义原数组
$arr1 = [
    4064628,
    4064953,
    4064922,
    4064870,
    4064789,
    4064631,
    4065044,
    4064942,
    4064938,
    4064936
];

$arr2 = [
    165020,
    165026,
    165025,
    165023,
    165024,
    165021,
    165027,
    165043,
    165042,
    165045
];

// 按索引配对组合成子数组
$merged = array_map(function($val1, $val2) {
    return [$val1, $val2];
}, $arr1, $arr2);

// 输出结果
print_r($merged);

输出结果

Array
(
    [0] => Array
        (
            [0] => 4064628
            [1] => 165020
        )

    [1] => Array
        (
            [0] => 4064953
            [1] => 165026
        )

    [2] => Array
        (
            [0] => 4064922
            [1] => 165025
        )

    [3] => Array
        (
            [0] => 4064870
            [1] => 165023
        )

    [4] => Array
        (
            [0] => 4064789
            [1] => 165024
        )

    [5] => Array
        (
            [0] => 4064631
            [1] => 165021
        )

    [6] => Array
        (
            [0] => 4065044
            [1] => 165027
        )

    [7] => Array
        (
            [0] => 4064942
            [1] => 165043
        )

    [8] => Array
        (
            [0] => 4064938
            [1] => 165042
        )

    [9] => Array
        (
            [0] => 4064936
            [1] => 165045
        )
)

补充说明

如果两个数组长度不一致,array_map会以较长数组的长度为准,缺失的对应元素会被填充为null。若需要自定义缺失值的处理逻辑,可以修改回调函数:

$merged = array_map(function($val1, $val2) {
    return [$val1 ?? 0, $val2 ?? 0]; // 用0替代null
}, $arr1, $arr2);

内容的提问来源于stack exchange,提问作者Andrei Manta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 10:48:16