我试图从JSON API提要中显示PHP列表,并且字段不断从一个数组更改到下一个。
有没有人能帮我解决这个问题
Json脚本,您将看到Json具有uniqueId和mac字段,这些字段在clientId
下的每个实例中都会更改。 {
"searchMeta": {
"maxResults": 100,
"sourceId": "6e5c1d5d-d84b-4b64-9d2c-a32b8c9f7174",
"iso8601Timestamps": true,
"sourceType": "VENUE",
"endTimestamp": 1444952156,
"startTimestamp": 1444952056
},
"ranges": [
{
"clients": [
{
"clientId": {
"mac": "6c:19:8f:bf:47:e9"
},
"rssis": [
{
"sourceId": "zR1L3",
"value": -93.3
}
]
},
{
"clientId": {
"uniqueId": "Kn04"
},
"rssis": [
{
"sourceId": "zR1L3",
"value": -75.3
}
]
},
{
"clientId": {
"mac": "58:6d:8f:75:95:0e"
},
"rssis": [
{
"sourceId": "zR1L3",
"value": -86.2
}
]
},
{
"clientId": {
"mac": "44:d9:e7:21:e0:de"
},
"rssis": [
{
"sourceId": "zR1L3",
"value": -25.8
}
]
},
{
"clientId": {
"mac": "68:72:51:10:e7:26"
},
"rssis": [
{
"sourceId": "zR1L3",
"value": -47
}
]
},
{
"clientId": {
"mac": "68:72:51:10:e7:29"
},
"rssis": [
{
"sourceId": "zR1L3",
"value": -72.3
}
]
},
{
"clientId": {
"mac": "a4:ee:57:2e:ac:bd"
},
"rssis": [
{
"sourceId": "zR1L3",
"value": -95
}
]
},
{
"clientId": {
"uniqueId": "CQos"
},
"rssis": [
{
"sourceId": "zR1L3",
"value": -64.1
}
]
},
{
"clientId": {
"mac": "86:8f:c2:8f:c3:20"
},
"rssis": [
{
"sourceId": "zR1L3",
"value": -68.4
}
]
},
{
"clientId": {
"mac": "32:91:8f:6c:2e:f4"
},
"rssis": [
{
"sourceId": "zR1L3",
"value": -87.7
}
]
},
{
"clientId": {
"mac": "30:91:8f:6c:2e:f3"
},
"rssis": [
{
"sourceId": "zR1L3",
"value": -86.9
}
]
},
{
"clientId": {
"mac": "30:91:8f:43:ca:49"
},
"rssis": [
{
"sourceId": "zR1L3",
"value": -87
}
]
},
{
"clientId": {
"mac": "1d:8b:90:7b:20:9c"
},
"rssis": [
{
"sourceId": "zR1L3",
"value": -102.5
}
]
},
{
"clientId": {
"mac": "38:2c:4a:5c:b6:a0"
},
"rssis": [
{
"sourceId": "zR1L3",
"value": -76.7
}
]
},
{
"clientId": {
"uniqueId": "ECgg"
},
"rssis": [
{
"sourceId": "zR1L3",
"value": -59.5
}
]
}
],
"timestamp": "2015-10-15T23:35:00+00:00"
}
]
}
然后读取和显示它的代码是
$json = json_decode($response,true);
$output = "<ul>";
foreach($json['ranges'] as $range){
foreach($range['clients'] as $client)
foreach($client['clientId'] as $client1)
foreach($client['rssis'] as $data){
$output .= "<h4>".$range['timestamp']."</h4>";
$output .= "<li>Source ID: ".$data["sourceId"]."</li>";
$output .= "<li>Value in dB: ".$data["value"]."</li>";
}}
$output .= "</ul>";
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $output;
}
然后在网页上显示,而不包含唯一标识符或mac字段。我需要显示其中任何一个的行,好吗?
2015 - 10 - 13 - t04:26:00 + 0
源ID: zR1L3 dB值:-89.2
2015 - 10 - 13 - t04:26:00 + 0
源ID: zR1L3 dB值:-98.8
2015 - 10 - 13 - t04:26:00 + 0
源ID: zR1L3 dB值:-74.6
谢谢你的回答,现在我得到了以下内容。
2015 - 10 - 16 - t10:11:00 + 0
2015 - 10 - 16 - t10:11:00 + 0
2015 - 10 - 16 - t10:11:00 + 0
2015 - 10 - 16 - t10:11:00 + 0
2015 - 10 - 16 - t10:11:00 + 0
2015 - 10 - 16 - t10:11:00 + 0
2015 - 10 - 16 - t10:11:00 + 0
2015 - 10 - 16 - t10:11:00 + 0
2015 - 10 - 16 - t10:11:00 + 0
2015 - 10 - 16 - t10:11:00 + 0
2015 - 10 - 16 - t10:11:00 + 0
2015 - 10 - 16 - t10:11:00 + 0
2015 - 10 - 16 - t10:11:00 + 0
mac: f4:b7:e2:31:65:8f
sourceId: zR1L3
value: -95
2015 - 10 - 16 - t10:12:00 + 0
2015 - 10 - 16 - t10:12:00 + 0
2015 - 10 - 16 - t10:12:00 + 0
2015 - 10 - 16 - t10:12:00 + 0
2015 - 10 - 16 - t10:12:00 + 0
mac: f4:b7:e2:31:65:8f
sourceId: zR1L3
value: -95
2015 - 10 - 16 - t10:13:00 + 0
不明白你到底在问什么。如果我理解正确,你想从json编码的数组访问几个字段。
试试这个
$json = json_decode($response,true);
foreach($json->ranges as $row){
foreach($row->clients as $row1)
echo $row->timestamp."<br>";
foreach($row1->clientId as $key => $val){
echo $key." ==== ". $val."<br>";
}
foreach($row1->rssis as $row2){
foreach($row2 as $key => $val){
echo $key." ==== ". $val."<br>";
}
}
}
我无法从你发布的json数组中获得时间戳。