2017-08-11 314 views
0

我想合并一些json文件并在使用foreach函数后显示它们。在PHP中合并2个Json文件

$urls = array('url_1','url_2', 'url_3', 'url_4', 'url_5'); 
$jobs = []; 
foreach ($urls as $url){ 
$json = json_decode(get_content($url), true); 
$jobs[] = $json; 
} 
$retour = json_encode($jobs); 
foreach($retour as $job) { 
echo $job; 
} 

但是我的屏幕上没有显示任何内容。我也没有错误。

当我做echo $retour;我有类似[[{...},{...},{...},{...},{...},{...}]]而不是[{...},{...},{...},{...},{...},{...}]

如何解决这个问题?

+0

是JSON文件工作数组$ url包含变量(url1,url2,...)作为json? – GYaN

+0

'$ retour'是一个json字符串,你可以在字符串上调用'foreach' –

+0

get_content函数的作用是什么?也许你想使用'file_get_contents'? –

回答

0

我曾尝试以下,似乎只要你想

<?php 
$urls = array('url_1','url_2'); 
$jobs = []; 
foreach ($urls as $url){ 
    $json = json_decode(file_get_contents($url), true); 
    array_push($jobs, $json); 
} 

$unique = array(); 
foreach ($jobs as $piece) { 
    $unique = array_merge($unique, $piece); 
} 
$retour = json_encode($unique); 
print_r($retour); //it gives merged json :: {"key1":"value1","key2":"value2","key3":"value3","key4":"value4"} 
$test[] = $retour; 
print_r($test); //to get it as array :: ([0] => {"key1":"value1","key2":"value2","key3":"value3","key4":"value4"}) 
?> 

我已经创建URL_1和url_2为如下

{ 
    "key1": "value1", 
    "key2": "value2" 
} 

{ 
    "key3": "value3", 
    "key4": "value4" 
}