我在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);
答案 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,以获取有效的演示。