更改关联数组中的特定元素

hol*_*ard 3 php arrays associative-array element

我有两个关联数组,如下所示:

$prod1 = (
    [name] = 'John',
    [address] = 'Milky way',
    [city] = 'Miami',
);

$prod2 = (
    [address] = 'Not so milky way'
);
Run Code Online (Sandbox Code Playgroud)

$ prod1总是有相同类型的元素(名称,地址,城市),但$ prod2可以包含所有元素或其中一些元素

我要的是替换的元素值$ PROD1,随着要素匹配$ Prod2的.在上面的例子$ Prod2的包含的地址,因此,在地址$ PROD1应与地址替换$ Prod2的(其中的元件的其余部分当然应该留原样).

如何实现这一目标?

Tim*_*per 6

array_merge功能将为您完成此操作:

$prod_new = array_merge($prod1, $prod2);
Run Code Online (Sandbox Code Playgroud)

文档:

如果输入数组具有相同的字符串键,则该键的后一个值将覆盖前一个键.

或者,你可以使用+运营商,这将给你相同的结果:

$prod_new = $prod1 + $prod2;
Run Code Online (Sandbox Code Playgroud)

+运算符返回附加到左手阵列右手阵列; 对于存在于两个数组中的键,将使用左侧数组中的元素,并且将忽略右侧数组中的匹配元素.