Объединить два многоуровневых массива в один

Имеется два массива:

Массив 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);
→ Ссылка