我有一个json文件,我想用PHP读取,我使用下面的代码显示数据直到第二个数组,但我不知道如何获得第三个数组。下面是我的php代码和json文件,
$json = file_get_contents('data.json');
$data = json_decode($json,true);
$counters = $data['counters']['counters'];
foreach ($counters as $row)
{
echo $name = $row['name']."<br>";
}
以上代码输出 C0
我的JSON文件包含以下数据
{
"counters":
{
"id":"#F02D27B324BF41AF",
"counterCount":14,
"counters":[
{
"name":"C0",
"total":{"request":712,"in":22982423,"out":13787213},
"html":{"request":105,"in":2073293,"out":485846}
},
{
"name":"C1",
"total":{"request":712,"in":22982423,"out":13787213},
"html":{"request":105,"in":2073293,"out":485846}
}]
},
"status":
{
"version":"0.0.0.2",
"command":"getdata",
"opf":"json",
"error":false,
"code":0
}
}
我的代码显示名称, C0 ,我想在请求中显示数据总数
答案 0 :(得分:1)
您可以像访问任何其他多维数组一样访问它:
echo $name = $row['html']['request']."<br>"
或迭代(即使用foreach()
)。
答案 1 :(得分:1)
你可以尝试这样的事情......
foreach ($counters as $row) {
echo $name = $row['name']."<br>";
echo $total = $row['total']['request']." ".$row['total']['in']." ".$row['total']['out']."<br>";
echo $html = $row['html']['request']." ".$row['html']['in']." ".$row['html']['out']."<br>";
}
答案 2 :(得分:1)
您的错误是您忘记了顶级数组。您的[counters][counters]
是数组,因此您需要执行以下操作:
foreach($data['counters']['counters'] as $item)
{
foreach($item as $key=>$value)
{
echo('<br>'.$key.' = ');
if(is_array($value))
{
foreach($value as $sub=>$number)
{
echo($sub.':'.$number).' ';
}
}
else
echo($value);
}
}
- 输出将是:
name = C0 total = request:712 in:22982423 out:13787213 html = request:105 in:2073293 out:485846
答案 3 :(得分:0)
你应该拥有所有的东西 json_decode($ JSON,TRUE);
尝试
foreach ($counters as $key => $value) {
if ($key == "name") {
echo $value; // should output "C0"
} else if ($key == "total") {
// now the value is another array object
echo $value["request"]; // should output 712
} else if ($key == "html") {
// same here
echo $value["request"]; // should output 105
}
}
我建议设置xdebug并跳转调试这样的东西,然后你可以检查你的$ data变量,并且可以在第一次尝试中完成所有工作:)
答案 4 :(得分:0)
谢谢大家,我解决了:) 要在total和html中显示数据,我们只需要写一个简单的行
$name = $row['total']['request'];
其输出 712