#php #json
#php #json
Вопрос:
Я пытаюсь получить информацию из этого массива, но только информацию из appid, которая имеет значение «240».
(Я хочу знать «playtime_2weeks» из идентификатора приложения, который имеет «240»)
это мой код
$link = file_get_contents('http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key=' . $key . 'amp;steamid=' . $id . 'amp;format=json');
$myarray = json_decode($link, true);
$info = ($myarray['response']['games'][0]['appid']);
Копия массива:
{
"response": {
"game_count": 44,
"games": [
{
"appid": 240,
"playtime_2weeks": 60,
"playtime_forever": 25979
},
{
"appid": 300,
"playtime_forever": 271
},
{
"appid": 320,
"playtime_forever": 0
},
{
"appid": 340,
"playtime_forever": 0
},
{
"appid": 4000,
"playtime_forever": 419
},
{
"appid": 12210,
"playtime_forever": 6743
},
{
"appid": 17470,
"playtime_forever": 0
},
{
"appid": 24740,
"playtime_forever": 0
},
{
"appid": 1250,
"playtime_forever": 377
},
{
"appid": 35420,
"playtime_forever": 0
},
{
"appid": 39800,
"playtime_forever": 0
},
{
"appid": 550,
"playtime_forever": 171
},
{
"appid": 223530,
"playtime_forever": 0
},
{
"appid": 8190,
"playtime_forever": 75
},
{
"appid": 49800,
"playtime_forever": 4
},
{
"appid": 17410,
"playtime_forever": 16
},
{
"appid": 9930,
"playtime_2weeks": 118,
"playtime_forever": 118
},
{
"appid": 22350,
"playtime_forever": 241
},
{
"appid": 400,
"playtime_forever": 1
},
{
"appid": 620,
"playtime_forever": 124
},
{
"appid": 644,
"playtime_forever": 0
},
{
"appid": 72200,
"playtime_forever": 8
},
{
"appid": 44320,
"playtime_2weeks": 84,
"playtime_forever": 84
},
{
"appid": 46540,
"playtime_forever": 0
},
{
"appid": 205790,
"playtime_forever": 0
},
{
"appid": 108800,
"playtime_forever": 0
},
{
"appid": 730,
"playtime_2weeks": 958,
"playtime_forever": 5998
},
{
"appid": 208500,
"playtime_2weeks": 18,
"playtime_forever": 1844
},
{
"appid": 96300,
"playtime_forever": 4
},
{
"appid": 220240,
"playtime_forever": 1593
},
{
"appid": 44690,
"playtime_forever": 1
},
{
"appid": 226700,
"playtime_forever": 251
},
{
"appid": 43160,
"playtime_forever": 66
},
{
"appid": 231430,
"playtime_forever": 709
},
{
"appid": 244850,
"playtime_forever": 1227
},
{
"appid": 47790,
"playtime_forever": 0
},
{
"appid": 47830,
"playtime_forever": 0
},
{
"appid": 232810,
"playtime_forever": 10
},
{
"appid": 223670,
"playtime_2weeks": 242,
"playtime_forever": 867
},
{
"appid": 252490,
"playtime_2weeks": 5,
"playtime_forever": 2422
},
{
"appid": 254130,
"playtime_2weeks": 493,
"playtime_forever": 493
},
{
"appid": 221100,
"playtime_2weeks": 17,
"playtime_forever": 1659
},
{
"appid": 247730,
"playtime_2weeks": 2,
"playtime_forever": 2
},
{
"appid": 3050,
"playtime_forever": 52
}
]
}
}
Комментарии:
1. Очевидно, не только PHP, но и общее программирование. Если вы знали, как написать цикл, вы должны знать, как решить эту проблему.
2. Пожалуйста, скопируйте / вставьте массив.
3. Итак, вы пытаетесь проанализировать объект JSON в PHP? Это та часть, на которой вы застряли?
4. Я застрял на том, что хочу получать информацию только из массива с идентификатором appid «240»
Ответ №1:
Это ответ JSON, а не массив. Сначала вам нужно преобразовать ее в массив, затем найдите нужное вам значение.
$response = '{
"response": {
"game_count": 44,
"games": [
{
"appid": 240,
"playtime_2weeks": 60,
"playtime_forever": 25979
},
{
"appid": 300,
"playtime_forever": 271
},
....
{
"appid": 3050,
"playtime_forever": 52
}
]
}
}';
$responseArray = json_decode($response, true);
foreach ($responseArray['response']['games'] as $game) {
if ($game['appid'] == '240') {
echo "Playtime is: " . $game['playtime_2weeks'];
}
}
или
array_walk($responseArray['response']['games'], function($game) {
if ($game['appid'] == '240') {
echo "Playtime is: " . $game['playtime_2weeks'];
}
});