我有两个从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()函数