合并两个数组的行(将一个数组中的行数据附加到另一个数组中的行)



我有两个从CodeIgniter查询结果集(来自result_array()的调用)填充的数组,我需要分别/同步地合并来自两个数组的行。

$array1 = [
    ['name' => 'John', 'course' => 'BSIT'], 
    ['name' => 'Jane', 'course' => 'BSHRM'],
];
$array2 = [
    ['balance' => '1000', 'date' => '2013-05-01'], 
    ['balance' => '2000', 'date' => '2013-05-07'], 
];

我如何将元素[balance], [date]$array2附加到$array1,使结果看起来像这样:

[
    [
        'name' => 'John',
        'course' => 'BSIT',
        'balance' => '1000',
        'date' => '2013-05-01'
    ], 
    [
        'name' => 'Jane',
        'course' => 'BSHRM',
        'balance' => '2000',
        'date' => '2013-05-07'
    ]
]

I have try:

for($i = 0; $i<count($array1); $i++)
{
    array_merge($array1[$i], $array2[$i]);
}

但我得到一个错误,arguments are not array即使我这样做:

for($i = 0; $i<count($array1); $i++)
{
    array_merge(array($array1[$i]), array($array2[$i]));
}

尝试将array_merge设置为:

for($i = 0; $i<count($array1); $i++)
{
    $array1[$i] = array_merge($array1[$i], $array2[$i]);
}
$merged_array = array_map(function($a, $b) {
  return array_merge($a, $b);
}, $array1, $array2));

有一种更简单的方法来合并两个或多个数组的行。用回调array_merge()调用array_map(),然后列出数组作为最终函数参数。array_map()将同步地从输入数组中每次隔离一行,以便array_merge()可以将两行合并为一行。

代码(演示):

var_export(
    array_map('array_merge', $array1, $array2)
);

尝试使用array_merge_recursive()函数

相关内容

  • 没有找到相关文章

最新更新