我试图弄清楚如何合并使用数字键的两个数组。我有两个数组,例如:
$array1[1] = array('service'=>array(1=>array('name'=>'Emergency','Price'=>10,'start_date'=>'2015-01-01')));
$array2[1] = array('calls'=>array('123456789'=>array('total'=>'150','Price'=>10,'cdrs'=>array(1=>array('src'=>123456789,'dist'=>987654321)))));
它们都有一个密钥,因为它们都属于客户编号1.我需要得到一个如此产生的结果数组:
Array
(
[1] => Array
(
[service] => Array
(
[1] => Array
(
[name] => Emergency
[Price] => 10
[start_date] => 2015-01-01
)
)
[calls] => Array
(
[123456789] => Array
(
[total] => 150
[Price] => 10
[cdrs] => Array
(
[1] => Array
(
[src] => 123456789
[dist] => 987654321
)
)
)
)
)
)
这样我可以使用两种方法返回两个大型数组,然后简单地合并它们并循环遍历。
我已尝试过两个array_merge
以及我不了解的以下内容:
$merged = $array1 + $array2;
然而,这两种方法似乎都没有实现目标,只是简单地返回一个或另一个。有没有人对如何实现这一点有任何建议?
答案 0 :(得分:0)
我现在无法测试,但我认为这应该有效。
$newArray = [];
for($i = 0; $i < sizeof($array1);$i++){
$newArray[] = array_merge($array1[$i],$array2[$i]);
}
return $newArray;
答案 1 :(得分:0)
使用函数array_merge_recursive将两个数组合并为:
$result[1] = array_merge_recursive($array1[1],$array2[1]);
//You can change key as per your need may be dynamic
print_r($result);