[英]PHP Specific JSON Array nesting level Confusion
我想知道是否有人可以帮忙。 我有一个来自 API 的 JSON 提要,但我永远无法弄清楚获取所需信息的级别?
JSON 在下面
{
"sourceId": "1234",
"sourceType": "MONITOR",
"searchMeta": {
"startTimestamp": 1462361513,
"endTimestamp": 1462508560,
"maxResults": 10000,
"metricType": [
"clients"
],
"family": [
"Product"
],
"metricsInterval": "M5"
},
"clients": {
"One": [
{
"timestamp": 1462361400,
"avg": 2,
"min": 1,
"max": 3,
"probes": 6,
"samples": 3,
"sources": [
"123",
"234",
"345",
"456",
"567",
"789"
]
},
我想将 Probes 值和 Samples 值放入一个变量中
foreach($json['clients'] as $range => $product){
echo $product['timestamp']." Probes: ".$product['probes']." Samples: ".$product['samples']." <br>";
}
提前致谢
我假设您将拥有一系列客户(因此是循环)。 因此,您还需要循环每个客户端,因为它是一个object
array
。
如果你把它形象化,它看起来像这样:
CLIENTS = ARRAY(
1 => ARRAY( OBJECT{} ), // you want the OBJECT{}
....etc
)
因此,下面的循环将为您提供。
$data = json_decode($json, TRUE);
foreach($data['clients'] as $range => $product) {
foreach($product as $element){
echo $element['timestamp']." Probes: ".$element['probes']." Samples: ".$element['samples']." <br>";
}
}
返回以下内容:
1462361400 Probes: 6 Samples: 3 <br>
OP的要求:
我想将 Probes 值和 Samples 值放入一个变量中
简单的只是将您的 json 文件命名为$json
。
$arr = json_decode($json);
echo $samples = $arr->clients->One[0]->samples; //3
echo $probes = $arr->clients->One[0]->probes; //6
尝试这个。
$data = json_decode($json,true);
foreach($data['clients'] as $client){
echo $client['timestamp']." Probes: ".$client['probes']." Samples: ".$client['samples']." <br>";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.