バックパック内のアイテムをループするために Steam API を使用しています。これが私が返されたものの一部です。
{
"result": {
"status": 1,
"num_backpack_slots": 900,
"items": [
{
"id": 1828738510,
"original_id": 1828738510,
"defindex": 166,
"level": 5,
"quality": 6,
"inventory": 2147484295,
"quantity": 1,
"origin": 0,
"flag_cannot_trade": true,
"attributes": [
{
"defindex": 143,
"value": 1373392596,
"float_value": 118276915200.000000
},
{
"defindex": 292,
"value": 1115684864,
"float_value": 64.000000
},
{
"defindex": 388,
"value": 1115684864,
"float_value": 64.000000
},
{
"defindex": 153,
"value": 1065353216,
"float_value": 1.000000
}
]
},
{
"id": 1828947755,
"original_id": 1178542060,
"defindex": 5009,
"level": 1,
"quality": 6,
"inventory": 2147484021,
"quantity": 1,
"origin": 4
},
{
"id": 1828947766,
"original_id": 1179066746,
"defindex": 5005,
"level": 1,
"quality": 6,
"inventory": 2147483798,
"quantity": 1,
"origin": 4
},
{
"id": 1828947780,
"original_id": 1181421843,
"defindex": 5009,
"level": 1,
"quality": 6,
"inventory": 2147484020,
"quantity": 1,
"origin": 4
},
等々。
私がやりたいことは、foreach(または動作する他の何か)を使用してdefindexのためにこれをループすることです。これが私の現在のコードです:
<?php
$api = "http://api.steampowered.com/IEconItems_440/GetPlayerItems/v0001/? key=MyApiKey&steamid=MySteamId&format=json";
$json = (file_get_contents($api));
$schema = json_decode($json);
$total_metal = 0;
if ($schema-> result -> items[0] -> defindex == 5000)
{
$total_metal++;
}
if ($schema-> result -> items[0] -> defindex == 5001)
{
$total_metal+= 3;
}
if ($schema-> result -> items[0] -> defindex == 5002)
{
$total_metal+= 9;
}
print $total_metal;
?>
これまでのところ、最初の変数はこの最初のもののこれらの defindex のいずれでもないため、これは 0 を返します。私がする必要があるのは、これら 3 つのインスタンスが配列全体を通過するようにすることです。私が見たところ、 for each の中に for each を書く必要がありますが、周りを見回すと、私を助けるものを見つけることができませんでした。前もって感謝します。