我有这个JSON数组,其中包含来自Google Analytics帐户的数据。我想收集这个数组的前三个条目并使用PHP显示。问题是,我不知道收集的关键。因为它可能会有所不同JSON看起来像这样:
"browsers": {
"Android Browser": 721,
"Chrome": 3362,
"Firefox": 912,
"Internet Explorer": 1776,
"Mozilla": 3,
"Opera": 190,
"Safari": 4501,
"Safari (in-app)": 284,
"Mozilla Compatible Agent": 82,
"Opera Mini": 7,
"Amazon Silk": 3,
"IE with Chrome Frame": 2,
"SeaMonkey": 1,
"KlappAppiPhone2": 8,
"Maxthon": 3
}
所以我需要遍历这个数组并打印出键和值。 我还没那么强大的PHP,我想我可以运行一个循环并回显出每个值,如下所示:
<?php
foreach($json->mobile as $row)
{
foreach($row as $key => $val)
{
echo $key . ': ' . $val;
echo '<br>';
}
}
?>
但我收到错误Invalid argument supplied for foreach()
。
在谷歌搜索该错误之后,我发现了这个片段:if (is_array($values))
并且我包含了这一点,没有任何内容被回应。这不是阵列吗?
我做错了什么?
答案 0 :(得分:0)
遵循这个......
json_decode()
foreach
<?php
$json = json_decode($yourjsonstring);
$i=0;
foreach($json->mobile as $key => $val)
{
if($i<=2)
{
echo $key . ': ' . $val;
echo '<br>';
$i++;
}
}
答案 1 :(得分:0)
<?php
$jsondata="your json data here";
$mobile=json_decode($jsondata);
foreach($mobile as $row)
{
foreach($row as $key => $val)
{
echo $key . ': ' . $val;
echo '<br>';
}
}
?>
答案 2 :(得分:0)
在将JSON字符串发送到使用json_decode()
函数的foreach解码之前。
例如:
$json = {
"mobile": {
"iPad": 30,
"Lumia 920": 2,
"iPhone": 105,
"Nexus 4": 4,
"GT-I9100": 5,
"GT-I9300": 6,
"GT-N8000": 1,
"GT-P5100": 2
}
}
$decode = json_decode($json);
foreach($decode->mobile as $key => $value) {
echo $key . ': ' . $val;
echo '<br>';
}