假设我有这些数组:
$array1 = [
'test' => json_encode([
'key1' => 'val1',
'key2' => 'val2',
'key3' => 'val3'
])
]
现在我有另一个数组
$array2 = [
'test' => json_encode([
'key4' => 'val4'
])
]
合并后,我希望它看起来像:
$array3 = [
'test' => json_encode([
'key1' => 'val1',
'key2' => 'val2',
'key3' => 'val3',
'key4' => 'val4',
])
]
但是当我做$result = array_merge($array1, $array2)
然后我明白了:
$array3 = [
'test' => json_encode([
'key4' => 'val4'
])
]
有任何建议如何解决这个问题?我用array_merge_recursive
尝试过,但也没有给出正确的结果。
感谢。
答案 0 :(得分:1)
你要做的是一种糟糕的方法。理想情况下,您可以先合并然后进行json编码。此外,所有数组都以test
为键,这就是为什么当您使用array_merge
时,您只获得第二个数组。你应该做的是访问每个子数组,然后合并它们。但是,这里有一段代码可以输出您需要的内容。
$array1 = [
'test' => json_encode([
'key1' => 'val1',
'key2' => 'val2',
'key3' => 'val3'
])
];
$array2 = [
'test' => json_encode([
'key4' => 'val4'
])
];
$array3['test'] = json_encode(array_merge(json_decode($array1['test'], true), json_decode($array2['test'], true)));
var_dump($array3);
答案 1 :(得分:0)
在json编码之前合并
试试这个,
$array3 = json_encode(array_merge(json_decode($array1, true),json_decode($array2, true)))
答案 2 :(得分:0)
我通过将test
键放入其自己的变量中来解决此问题。
然后我合并了它们并json_encoded了它。