Steam API — заменить идентификаторы схемой

Я нахожу решение для получения идентификатора из API на мой сайт.

Но я до сих пор не знаю, как это заменить: (из http://api.steampowered.com/IEconItems_440/GetPlayerItems/v0001/?key=APIKEY&steamid=76561198108107219&format=json)

"id": 1960542190,
"defindex": 744,

При этом: (из http://api.steampowered.com/IEconItems_440/GetSchema/v0001/?key=APIKEY)

"name": "Pyrovision Goggles",
"defindex": 744,

Я использую это:

     $url = "http://api.steampowered.com/IEconItems_440/GetPlayerItems/v0001/?key=" . $api_key . "&steamid=" . $idc . "&format=json";
     $json_object= file_get_contents($url);
     $json_decoded = json_decode($json_object);

      foreach ($json_decoded->result->items as $item)
      {
          $items[$item->id]['id'] = $item->id;
          $items[$item->id]['original_id'] = $item->original_id;
          $items[$item->id]['defindex'] = $item->defindex;
          $items[$item->id]['level'] = $item->level;
          $items[$item->id]['quality'] = $item->quality;


          echo $item->defindex; echo "<br>";
      }

person Krancik    schedule 24.01.2015    source источник


Ответы (1)


У вас есть инвентарь игрока, теперь вам нужно вытащить схему предмета.

 $url = "http://api.steampowered.com/IEconItems_440/GetSchema/v0001/?key=" $APIKEY;
 $json_object= file_get_contents($url);
 $schema_json_decoded = json_decode($json_object);
 $items_schema = $schema_json_decoded->result->items;   

Элементы схемы теперь находятся в переменной $items. В вашем цикле foreach нам нужно сравнить defindex предмета игрока с defindexes в схеме:

foreach ($json_decoded->result->items as $item)
  {
      ...
      $items[$item->id]['defindex'] = $item->defindex;
      ...

      foreach ($items_schema as $item)
      {
          if ($items[$item->id]['defindex'] == $item->defindex)
          {
              $items[$item->id]['name'] = $item->item_name;
          }
      }
  }

Имя вашего предмета теперь хранится в $items[$item->id]['name'].

person Andy♦    schedule 24.01.2015
comment
Теперь я получаю: Ошибка синтаксического анализа: синтаксическая ошибка, неожиданное «как» (T_AS), ожидание «;» - person Krancik; 25.01.2015
comment
Эта секунда for также должна быть foreach - person temporalslide; 03.02.2016
comment
Привет. Может ли кто-нибудь опубликовать исправленный код, пожалуйста? Заранее спасибо. - person XsiSec; 11.02.2016
comment
Что не так с этим кодом Дэниел? foreach, упомянутый в предыдущем комментарии, исправлен. - person Andy♦; 11.02.2016