【发布时间】:2019-06-11 22:24:48
【问题描述】:
我需要在 PHP 中合并两个 json 文件 。一个起初是空的,另一个在每次调用时都会改变。
我发现很多代码可以在 PHP 中将两个 JSON 数组合并为一个,但它对我不起作用。
$final_array = array();
$first_json = file_get_contents("test3.json");
$second_json = file_get_contents("my-file.json");
if(json_decode($first_json,true) == null){
$final_array[] = json_decode($second_json,true);
$merge_final_array = json_encode(json_decode($second_json,true));
}else{
$final_array[] = json_decode($first_json,true);
$final_array[] = json_decode($second_json,true);
$merge_final_array = json_encode($final_array);
}
file_put_contents("test3.json", $merge_final_array);
$merge_final_array = null;
我将在“my-file.json”中找到的数据递归地添加到“test3.json”文件中。
这应该给我:
[{"score":15,"win":true,"device":"Android SDK built for x86"},{"score":"Finish","device":"Android SDK built for x86","win":true},{"win":true,"score":"Finish","device":"Android SDK built for x86"},{"score":16,"scenario":"Finish","win":true,"device":"Android SDK built for x86"}]
因为它给了我:
[[[{"score":15,"win":true,"device":"Android SDK built for x86"},{"score":"Finish","device":"Android SDK built for x86","win":true}],{"win":true,"score":"Finish","device":"Android SDK built for x86"}],{"score":16,"scenario":"Finish","win":true,"device":"Android SDK built for x86"}]
我也试过json_encode(array_merge(json_decode($first_json, true),json_decode($second_json, true)))的方法
它给了我这个:
Code + result
我做错了什么?
【问题讨论】:
-
我希望用 PHP,而不是 javascript。