Я пытаюсь понять, как объединить два массива, которые используют числовой ключ. Например, у меня есть два массива:
$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;
Однако ни один из методов, похоже, не достигает цели и просто возвращает тот или другой. Есть ли у кого-нибудь советы относительно того, как я могу это достичь?
Я не могу проверить это прямо сейчас, но я думаю, что это должно сработать.
$newArray = [];
for($i = 0; $i < sizeof($array1);$i++){
$newArray[] = array_merge($array1[$i],$array2[$i]);
}
return $newArray;
Объедините два массива с помощью функции array_merge_recursive as:
$result[1] = array_merge_recursive($array1[1],$array2[1]);
//You can change key as per your need may be dynamic
print_r($result);