我有两个来自2个单独的SQL语句的数组。
第一阵列:
$a1 = array(
array('referral_count' => 213),
array('referral_count' => 88),
array('referral_count' => 35)
);
第二阵列:
$a2 = array(
array('ocean_company_id' => 524, 'customer_company_id' => 522),
array('ocean_company_id' => 527, 'customer_company_id' => 522),
array('ocean_company_id' => 544, 'customer_company_id' => 543)
);
现在我要做的是将两个数组组合成:
$a3 = array(
array(
'ocean_company_id' => 524,
'customer_company_id' => 522,
'referral_count' => 213),
array(
'ocean_company_id' => 527,
'customer_company_id' => 522,
'referral_count' => 88),
array(
'ocean_company_id' => 544,
'customer_company_id' => 543,
'referral_count' => 35)
);
我尝试array_merge
和array_merge_recursive
,但它会附加到数组而不是组合它。谢谢!
PS。我还有其他想要组合的阵列,但这是一般的想法。
答案 0 :(得分:2)
您可以使用缓冲区。假设您的数组具有相同的长度。
$result = array();
foreach ($array1 as $i => $arr)
{
$result[$i] = array_merge($arr, $array2[$i]);
}
var_dump($result);
答案 1 :(得分:1)
有很多方法可以做到这一点。这是将第一个数组中的值添加到第二个数组的一种奇怪方法。
for ($i=0; isset($a1[$i]); $a2[$i]['referral_count'] = $a1[$i]['referral_count'], $i++);
这与
基本相同$i = 0;
while (isset($a1[$i])) {
$a2[$i]['referral_count'] = $a1[$i]['referral_count'];
$i++;
}
这种方法的优点是没有函数调用,也没有创建其他变量($i
除外);
如果您不想更改输入数组,可以将array_map
与array_merge
结合使用,将它们组合成一个新数组:
$a3 = array_map('array_merge', $a2, $a1);
这种方法的优点在于,因为这两个函数都使用可变数量的参数,所以您可以根据需要组合任意数量的数组。