Объединить два многоуровневых массива в один
Имеется два массива:
Массив 1:
Array
(
[0] => Array
(
[entryid] => MTU1NzE5NzM5IyMw
[quantity] => 2
[basePrice] => 450
[deliveryCost] => 0
[masterproductsID] => MTAxMTAxNzY4
)
[1] => Array
(
[entryid] => MTU1NzE5NzM5IyMx
[quantity] => 1
[basePrice] => 650
[deliveryCost] => 0
[masterproductsID] => MTAxMTE1ODMz
)
[2] => Array
(
[entryid] => MTU1NzE5NzM5IyMy
[quantity] => 1
[basePrice] => 650
[deliveryCost] => 0
[masterproductsID] => MTAxMTAxNzc2
)
)
Массив 2:
Array
(
[0] => Array
(
[code] => 101101768
[name] => Immune Up Соленый арахис 100 г
)
[1] => Array
(
[code] => 101115833
[name] => Immune Up Черный изюм 100 г
)
[2] => Array
(
[code] => 101101776
[name] => Immune Up Курага 200 г
)
)
Нужно получить массив вида:
Array
(
[0] => Array
(
[entryid] => MTU1NzE5NzM5IyMw
[quantity] => 2
[basePrice] => 450
[deliveryCost] => 0
[masterproductsID] => MTAxMTAxNzY4
[code] => 101101768
[name] => Immune Up Соленый арахис 100 г
)
[1] => Array
(
[entryid] => MTU1NzE5NzM5IyMx
[quantity] => 1
[basePrice] => 650
[deliveryCost] => 0
[masterproductsID] => MTAxMTE1ODMz
[code] => 101115833
[name] => Immune Up Черный изюм 100 г
)
[2] => Array
(
[entryid] => MTU1NzE5NzM5IyMy
[quantity] => 1
[basePrice] => 650
[deliveryCost] => 0
[masterproductsID] => MTAxMTAxNzc2
[code] => 101101776
[name] => Immune Up Курага 200 г
)
)
пробовал array_merge, array_push, array_merge_recursive - ничего не помогло :) Буду благодарен за любую подсказку.
Ответы (2 шт):
Автор решения: InDevX
→ Ссылка
function combine ($first, $second) {
if (sizeof($first) && sizeof($second)) {
foreach ($first as $key => $arr) {
if ( isset($second[$key]) ) {
$first[$key] = array_merge($arr, $second[$key]);
}
}
return $first;
}
return sizeof($first) ? $first : ( sizeof($second) ? $second : []);
}
$array = combine($firstArray, $secondArray);
Автор решения: TigerTV.ru
→ Ссылка
Используйте array_replace_recursive:
$a = array
(
array
(
"entryid" => "MTU1NzE5NzM5IyMw",
"quantity" => 2,
"basePrice" => 450,
"deliveryCost" => 0,
"masterproductsID" => "MTAxMTAxNzY4"
),
array
(
"entryid" => "MTU1NzE5NzM5IyMx",
"quantity" => 1,
"basePrice" => 650,
"deliveryCost" => 0,
"masterproductsID" => "MTAxMTE1ODMz"
),
array
(
"entryid" => "MTU1NzE5NzM5IyMy",
"quantity" => 1,
"basePrice" => 650,
"deliveryCost" => 0,
"masterproductsID" => "MTAxMTAxNzc2"
)
);
$b = array
(
array
(
"code" => 101101768,
"name" => "Immune Up Соленый арахис 100 г"
),
array
(
"code" => 101115833,
"name" => "Immune Up Черный изюм 100 г"
),
array
(
"code" => 101101776,
"name" => "Immune Up Курага 200 г"
),
);
$res = array_replace_recursive($a, $b);
print_r($res);