从外部json文件创建具有多数组的文件json

时间:2018-06-25 08:52:43

标签: php json

我在stackoverflow中进行了搜索,确实发现了很多有关多数组的线程,但是没人能帮我,因此一个新的线程也许有人可以帮助我找到解决我问题的方法。

我想要的是创建一个Json文件,该文件从外部json文件获取值。

举例说明我想要的:

{
 "day":[[1522108800000,6305.5],[1522195200000,6440.7]],
 "month":[[1522108800000,6305.5],[1522195200000,6440.7]]
}

我尝试了我的代码,但是只能从1个json文件中获取值,而不能从两个json文件中获取值。 请查看并让我知道您是否可以提供帮助/建议。

// Array Min    
$json_min = file_get_contents("https://min-api.cryptocompare.com/data/histominute?fsym=BTC&tsym=EUR&limit=5&e=kraken");

// Array Day
$json_day = file_get_contents("https://min-api.cryptocompare.com/data/histoday?fsym=BTC&tsym=EUR&limit=5&e=kraken");

$array_min = json_decode($json_min, true);
$array_day = json_decode($json_day, true);

$array = array (
        'day' => array (),
        'month' => array (),
    );

foreach($array_min['Data'] as $key)
{
    $close_min   = $key['close'];
    $time_min    = $key['time'];
    $time_min    = $time_min *1000;

    $close_day   = $key2['close'];
    $time_day    = $key2['time'];
    $time_day    = $time_day *1000;

    $array['day'][] = [$time_min, $close_min];
    $array['month'][] = [$time_day, $close_day];

}

$json_data   = json_encode($array);
file_put_contents( 'json/history.json', $json_data);

1 个答案:

答案 0 :(得分:1)

您的错误主要是:[ { "name": "kong-admin-internal", "ip": [ "172.16.22.5" ] }, { "name": "kong-proxy-external", "ip": [ "192.168.0.2" ] } ] 不存在,因此foreach永远不会运行,并且您也没有定义任何$ key2来读取第二个数组。您需要分别遍历每个输入数组。

下面的代码可以很巧妙地做到这一点。

可以通过两个完全独立的循环(每个输入一个)来更详细地执行此操作,但是:由于您希望对两个输入执行相同的操作,因此可以通过将两个输入数组放入包装器数组,并为其提供与输出数组中的键匹配的条目键:

$array['Data']

请参见此处:https://github.com/axios/axios#request-config,以获取有效的演示。