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

PHP中如何将多个单维数组合并为目标多维数组?

如何将多个单维数组合并为指定格式的多维数组?

很简单,这里有几种实用的方法可以实现你要的转换,根据你的实际场景选择就行:

方法1:直接手动构建(最直观)

如果你的数组数量不多,直接把每个单维数组放进一个新数组里就搞定了,PHP 5.4+还支持更简洁的短数组语法:

// 你的原始单维数组
$test1 = array( '0' => 'test1', '1' => 'test2', '2' => 'test3' );
$test2 = array( '0' => 'test21', '1' => 'test22', '2' => 'test23' );
$test3 = array( '0' => 'test31', '1' => 'test32', '2' => 'test33' );
$test4 = array( '0' => 'test41', '1' => 'test42', '2' => 'test43' );

// 构建目标多维数组(长语法)
$result_needed = array(
    $test1,
    $test2,
    $test3,
    $test4
);

// 或者用短数组语法(推荐,更简洁)
$result_needed = [
    $test1,
    $test2,
    $test3,
    $test4
];

这样得到的$result_needed就是你要的格式:外层数组的索引0对应$test1,索引1对应$test2,以此类推,每个元素都是原来的单维数组。

方法2:循环批量处理(适合数组数量多的场景)

如果你的数组是按规律命名的(比如test1、test2...testN),用循环可以避免手动逐个添加,效率更高:

$result_needed = [];

// 遍历数组编号,这里假设是1到4
for ($i = 1; $i <= 4; $i++) {
    $varName = 'test' . $i;
    // 先检查变量是否存在,避免报错
    if (isset($$varName)) {
        $result_needed[] = $$varName;
    }
}

这里用到了变量变量($$varName),它会根据字符串变量的值获取对应的数组变量。

方法3:用compact函数快速合并

如果你能明确说出所有数组的变量名,可以用compact()函数一次性把它们打包,不过默认返回的数组键名是变量名(比如'test1'),如果需要数字索引,用array_values()转换一下:

// 先打包成关联数组
$temp = compact('test1', 'test2', 'test3', 'test4');
// 转换为数字索引的多维数组
$result_needed = array_values($temp);

这样得到的结果和方法1完全一致。


内容的提问来源于stack exchange,提问作者always-a-learner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:55:17