Php 将一个数组添加到多维数组中

Php 将一个数组添加到多维数组中,php,multidimensional-array,array-merge,indexed,Php,Multidimensional Array,Array Merge,Indexed,我想将数组b的值添加到数组a中: $a = [[1, 2],[4, 5],[7, 8]]; $b = [3, 6, 9]; 结果应该是: $result = [[1, 2, 3],[4, 5, 6],[7, 8, 9]]; 我正在尝试这个(还有很多其他的东西),但是没有得到它 foreach ($a as $el) { $i = 0; $el[] = $b[$i]; $i++; } 这应该简单到: $a = [[1, 2],[4, 5],[7, 8]];

我想将数组b的值添加到数组a中:

$a = [[1, 2],[4, 5],[7, 8]];
$b = [3, 6, 9];
结果应该是:

$result = [[1, 2, 3],[4, 5, 6],[7, 8, 9]];
我正在尝试这个(还有很多其他的东西),但是没有得到它

foreach ($a as $el) {
    $i = 0; 
    $el[] = $b[$i];
    $i++;
}

这应该简单到:

$a = [[1, 2],[4, 5],[7, 8]];          
$b = [3, 6, 9];
foreach($a as $key => &$arr){
    $arr[] = $b[$key];
}
这并不难

<?php
$a = [[1, 2],[4, 5],[7, 8]];
$b = [3, 6, 9];
for($i = 0; $i < count($b);$i++) {
    array_push($a[$i],$b[$i]);
}
?>

这里我们使用它来实现所需的输出。希望这会有帮助


这是一条其他人都没想到的聪明的单行线:

代码:()

输出:

array (
  0 => 
  array (
    0 => 1,
    1 => 2,
    2 => 3,
  ),
  1 => 
  array (
    0 => 4,
    1 => 5,
    2 => 6,
  ),
  2 => 
  array (
    0 => 7,
    1 => 8,
    2 => 9,
  ),
)
这种方法将
$b
拆分为与
$a
相同的结构,然后很容易将它们合并在一起


如果您的输入数组相对较小,那么
foreach()
可能是最佳选择。随着您的输入阵列规模的增长,我相信您会发现我的方法将比
foreach()
具有更大的性能优势(不过老实说,我是根据我提供的其他类似答案得出的结论,实际上我还没有对这个案例进行基准测试).

你的解决方案应该比我的快。我不确定为什么这比循环的
解决方案的投票率高。这要复杂得多——甚至使用引用。我猜是因为它看起来更花哨?@Xatenev-See我给出了另一种实现期望输出的方法,就是这样。我自己投票赞成循环方法。@Xatenev这不是比我更快的解决方案吗<代码>数组_walk
应该工作得更快。当然,如果一个数组只有这个数组那么小,那么就没有区别了。第二次投票是我投的。@SahilGulati当然我也投票给了你的答案-我只是感到困惑,因为在这种情况下,
for循环
显然是一个更好的解决方案,因为它更具可读性,我肯定会推荐给OP
$a = [[1, 2],[4, 5],[7, 8]];
$b = [3, 6, 9];
$result = $a;
foreach ($a as $key => $val) {
    if(!empty($b[$key])) {
        array_push($result[$key], $b[$key]);
    }
}

var_export($result);
$a = [[1, 2],[4, 5],[7, 8]];          
$b = [3, 6, 9];

var_export(array_map('array_merge',$a,array_chunk($b,1)));
array (
  0 => 
  array (
    0 => 1,
    1 => 2,
    2 => 3,
  ),
  1 => 
  array (
    0 => 4,
    1 => 5,
    2 => 6,
  ),
  2 => 
  array (
    0 => 7,
    1 => 8,
    2 => 9,
  ),
)