我正在尝试从WoWProgress API中提取数据。我想在线解析数据并直接解码它们,同时发布它们以供查看。我还在学习,但我似乎遇到了这个阵列的问题。真的需要一些帮助。
$json = file_get_contents("http://www.wowprogress.com/guild/eu/twisting-nether/hellenic%20horde/json_rank");
if($json == false)
{
throw new Exception("Failed To load infomation. Check setup options");
}
$result = json_decode($json, true);
echo "<pre>";
foreach ($result["realm_rank"] as $value) {
print_r($value);
}
echo "</pre>";
但我收到的是“为foreach()提供的无效参数”
真的很喜欢一些帮助。 在此先感谢!
抱歉我的英文。英语不是我的母语。
答案 0 :(得分:1)
$result['realm_rank']
是一个字符串,而不是一个数组。
因此,foreach
会导致错误。
如果未设置数组,或者为空或不是数组,则会导致此错误。
<?php
$json = file_get_contents("http://www.wowprogress.com/guild/eu/twisting-nether/hellenic%20horde/json_rank");
if ($json == false) {
throw new Exception("Failed To load infomation. Check setup options");
}
$result = json_decode($json, true);
if (isset($result['realm_rank'])) {
if (is_array($result['realm_rank'])) {
foreach ($result["realm_rank"] as $value) {
echo "<pre>";
print_r($value);
echo "</pre>";
}
}
else {
echo $result['realm_rank'];
}
}
else {
echo 'Unknown error';
}
?>
答案 1 :(得分:0)
$result["realm_rank"]
不是数组而是值。所以你不能把它传递给foreach。
只是做:
print_r($result["realm_rank"]);
我试过这个和它的工作:
<?php
$json = file_get_contents("http://www.wowprogress.com/guild/eu/twisting-nether/hellenic%20horde/json_rank");
if($json == false)
{
throw new Exception("Failed To load infomation. Check setup options");
}
$result = json_decode($json, true);
echo "<pre>";
print_r($result["realm_rank"]);
echo "</pre>";
?>
答案 2 :(得分:0)
您的$ result [&#34; realm_rank&#34;]不是数组,而是整数。你不能迭代一个整数。
尝试简单地打印它:
print_r($result["realm_rank"]);
答案 3 :(得分:0)
$result
的结果是
print_r($result);
Array
(
[score] => 750000
[world_rank] => 2117
[area_rank] => 1031
[realm_rank] => 44
)
为foreach()提供的参数无效意味着
$result["realm_rank"]
不是数组。
对于解决方案,您可以将值用作:
foreach($result as $value) {
echo $value. "<br/>";
}
或者只是使用
echo $result["realm_rank"];
答案 4 :(得分:0)
除非您特别需要将其转换为数组以循环遍历值,否则您可以将其保留为默认对象格式并直接按名称访问值。
define('NL',PHP_EOL);/* only to prettify output */
$json = file_get_contents("http://www.wowprogress.com/guild/eu/twisting-nether/hellenic%20horde/json_rank");
if( !$json ) {
throw new Exception("Failed To load infomation. Check setup options");
}
$json = json_decode( $json );
echo '<pre>',
$json->score . NL,
$json->world_rank . NL,
$json->area_rank . NL,
$json->realm_rank . NL,
'<pre>';