PHP:组合数组
这两个数组来自两个单独的SQL语句 第一阵列:PHP:组合数组,php,arrays,Php,Arrays,这两个数组来自两个单独的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),
$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\u merge
和array\u merge\u recursive
但是它是附加到数组而不是合并它。谢谢
另外,我还想组合其他阵列,但这是一般的想法。您可以使用缓冲区。假设数组的长度相同
$result = array();
foreach ($array1 as $i => $arr)
{
$result[$i] = array_merge($arr, $array2[$i]);
}
var_dump($result);
有很多方法可以做到这一点。这里有一种将值从第一个数组添加到第二个数组的奇怪方法
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\u map
和array\u merge
将它们组合成一个新数组:
$a3 = array_map('array_merge', $a2, $a1);
这种方法的优点是,由于这两个函数的参数数量可变,因此可以任意组合数组。在使用PHP之前,SQL是否可以组合到一个查询中?遗憾的是,它无法组合:(我已经尝试过这种方法,因为需要从主SQL语句中获取更多的其他数据。我有一条主SQL语句提取不同的ID,在我的while循环中,我需要ID查询到其他表以获取其他数据/计数。因此,需要将结果合并到一个数组中。因为数组中有umeric keys.faster解决方案:$a3=array\u map('array\u merge',$a2,$a1);