-1

次のようなjsonファイルがあります(かなり大きいですが、同じファイルのxmlバージョンは19000行を超えています)。

object(stdClass)#1 (1) {
    ["result"]=> object(stdClass)#2 (13) {
        ["items"]=> array(1628) {
            [0]=> object(stdClass)#27 (18) {
                ["image_url"]=> string(95) "http://media.steampowered.com/apps/440/icons/c_bat.d037d6a40ec30ab4aa009387d476dca889b6f7dc.png"
            }
            [1]=> object(stdClass)#29 (18) {
                ["image_url"]=> string(98) "http://media.steampowered.com/apps/440/icons/w_bottle.859ddb315a2748f04bcc211aa7a04f2c926e6169.png"
            }
        }
    }
}

「items」配列内の各オブジェクトの画像 URL を取得したいのですが、これを試してみました。

<?PHP

$api = "http://api.steampowered.com/IEconItems_440/GetSchema/v0001/?key=yoink&language=en_US&format=json";

$json = file_get_contents($api);

$schema = json_decode($json);

print count($schema->result->items);

foreach($schema->results->items as $item) {
    print "{$item->image_url}";
} 

?>

しかし、印刷されたページを確認すると、次のようになります。

1628 Warning: Invalid argument supplied for foreach() in - on line 13

これで、count が 1628 を返すため、この配列が空ではないことがわかりました。また、上記のように以前に var_dump を取得していたため、null でもありません。どこが間違っていたのか、誰か助けてもらえますか?

編集:読み方を学ぶ必要があります。この質問を閉じるために投票してください!

4

2 に答える 2