合并具有匹配键php的数组

时间:2012-08-21 17:55:04

标签: php arrays merge

好的,所以有人在读这篇文章时可能会笑,但我无法让它发挥作用。我有两个数组。

数组1看起来像:

Array 
(

 [525133-004-TURQ/WHT-9] => Array
    (
        [classId] => 48
        [family] => Mens Shoes
        [onOrder] => 3.000
        [cost] => 45.000
        [sell] => 95.000
        [desc] => PAUL RODRIGUEZ 6, TURQ/WHT, 9
        [invStore] => 0.000
        [code] => 525133-004-TURQ/WHT-9
    )
)

数组2看起来像:

Array
(

[525133-004-TURQ/WHT-9] => Array
    (
        [inv] => 0.000
    )
)

所需的结果是:

Array 
(

 [525133-004-TURQ/WHT-9] => Array
    (
        [classId] => 48
        [family] => Mens Shoes
        [onOrder] => 3.000
        [cost] => 45.000
        [sell] => 95.000
        [desc] => PAUL RODRIGUEZ 6, TURQ/WHT, 9
        [invStore] => 0.000
        [code] => 525133-004-TURQ/WHT-9
        [inv] => 0.000
    )
)

我尝试合并但它无法正常工作。请帮忙!

2 个答案:

答案 0 :(得分:3)

使用array_merge_recursive

$arr1 = array(
    '525133-004-TURQ/WHT-9' => array(
        'classId' => 48,
        'family' => 'Mens Shoes',
        'onOrder' => 3.000,
        'cost' => 45.000,
        'sell' => 95.000,
        'desc' => 'PAUL RODRIGUEZ 6, TURQ/WHT, 9',
        'invStore' => 0.000,
        'code' => '525133-004-TURQ/WHT-9'
    )
);

$arr2 = array(
    '525133-004-TURQ/WHT-9' => array(
        'inv' => 0.000
    )
);

$newArray = array_merge_recursive($arr1, $arr2);

在此处查看:[{3}}

答案 1 :(得分:0)

foreach ($arr1 as $key => $v1) {
    if (isset($arr2[$key])) {
        foreach ($arr2[$key] as $k => $v) {
            $arr1[$key][$k] = $v;
        }
    }
}

如果我是对的。