我们有2个数组,我们想将第二个数组中的值替换为第一个数组,一切顺利,除了要复制一个键。
数组:
数组1
[
{
"1": 0
},
{
"2": 0
},
{
"3": 0
},
{
"4": 0
},
{
"5": 0
},
{
"6": 0
},
{
"7": 0
},
{
"8": 0
},
{
"9": 0
},
{
"10": 0
},
{
"11": 0
},
{
"12": 0
}
]
数组2
[
{
"2": 4526
},
{
"3": 81
},
{
"4": 20
}
]
我们继续
array_replace($array1, $array2);
它应该返回键2、3和4的值的更新-但是我们收到以下结果:
[
[
{
"2": 4526
},
{
"3": 81
},
{
"4": 20
},
{
"4": 0
},
{
"5": 0
},
{
"6": 0
},
{
"7": 0
},
{
"8": 0
},
{
"9": 0
},
{
"10": 0
},
{
"11": 0
},
{
"12": 0
}
]
]
数字4的密钥重复,而数字1的密钥完全丢失。
有什么建议吗?
答案 0 :(得分:0)
似乎您有对象数组(json数据),可以尝试这样:
$result_as_array = array_replace(
call_user_func_array('array_merge', json_decode($array1, true),
call_user_func_array('array_merge', json_decode($array2, true)
);
现在,在对象数组(json)中获取所需的响应:
$result = json_encode(array_chunk($result_as_array ,1,true));