列出已解码的json的嵌套数组结果

时间:2014-09-11 11:46:06

标签: php arrays json

我正在使用暴乱api,我正在试图弄清楚如何列出召唤者api的结果。以下是我到目前为止的情况:

//Start getting Summoner Name
$summjsonstring = 'https://na.api.pvp.net/api/lol/na/v1.4/summoner/by-name/' . $name . '?api_key=' . $key;
//echo $summjsonstring;
$summjsonstringcontents = file_get_contents($summjsonstring);
echo $summjsonstringcontents;
echo "<p>";
$summnameresults = json_decode($summjsonstringcontents, true);
foreach($summnameresults as $data => $value)
   echo '<br/>'. $data.' : '. $value;

这似乎只会返回

testname : Array

这是JSON的样子:

{"testname ":{"id":2354235,"name":"Test Name","profileIconId":691,"summonerLevel":30,"revisionDate":1410406459000}}

4 个答案:

答案 0 :(得分:1)

如果你想要内部,你可以直接在foreach内访问该级别。例如:

foreach($summnameresults['testname '] as $data => $value) {
                       //  ^^ access the array directly 
    echo "$data => $value <br/>";
}

注意:我不知道这是否是你的json字符串的拼写错误。testname有一个领先的空间

答案 1 :(得分:1)

foreach($summnameresults as $key => $value) {
  echo $key;
  foreach($value as $k => $v) {
    echo '<br/>'.$k.' : '.$v;
  }
}

答案 2 :(得分:0)

它应该是它应该是什么;)你的$data var包含一个字符串,并且可以按原样打印,但$value var是一个数组,不能就像那样打印。但是,您可以像任何数组一样访问它,示例如下:echo $value['id'];将打印出2354235

试试这段代码,它会进一步帮助您:

//Start getting Summoner Name
$summjsonstring = 'https://na.api.pvp.net/api/lol/na/v1.4/summoner/by-name/' . $name . '?api_key=' . $key;
//echo $summjsonstring;
$summjsonstringcontents = file_get_contents($summjsonstring);
echo $summjsonstringcontents;
echo "<p>";
$summnameresults = json_decode($summjsonstringcontents, true);
foreach($summnameresults as $data => $value)
   echo '<br/>'. $data.' : '. $value['name'];

答案 3 :(得分:0)

要查看数组结构,请使用:

echo "<pre>";
print_r($summnameresults);

如果您想知道他们的数据类型,请使用:

echo "<pre>";
var_dump($summnameresults);