2013-05-28 18 views
0

我目前正在用JSON搞亂。我必須要變量:$ a和$ b。無法顯示從JSON文件中獲得的數組的部分

$一個從網站獲取一個JSON文件:

$a = file_get_contents("http://backpack.tf/api/IGetUsers/v2/?steamids=76561198037411448&format=json"); 

$ B進行解碼

我做的var_dump上$ B,以確認它是,事實上,一個數組。

我試圖回顯$ b [「name」],但沒有返回。

我不知道什麼是錯的;什麼都沒有被返回。

+0

也許將gettype()將幫助您:http://php.net/manual/de/function.gettype.php – Chris

+0

嘗試使用的var_dump($ B)得到的一個想法變量的內容 – Scuzzy

回答

2

你有一個多維數據集,而不是$ B [ 「名稱」]你想要的是:

$b["response"]["players"][0]["name"] 

這是JSON從URL對象結構

{ 
    "response": { 
     "success": 1, 
     "current_time": 1369778504, 
     "players": { 
      "0": { 
       "steamid": "76561198037411448", 
       "success": 1, 
       "backpack_value": 185.86, 
       "backpack_update": 1369543543, 
       "name": "Paranoid Android", 
       "stats_tf_reputation": 1, 
       "notifications": 0 
      } 
     } 
    } 
} 

如果你需要迭代,將不得不循環通過$ b [「response」] [「players」]

0

也許你想要這樣的東西?我只是猜測可能會有超過1名球員。

for($i = 0;$i<count($b["response"]["players"]);$i++) 
{ 
    echo $b["response"]["players"][$i]["name"] 
} 
0

那麼,這是返回的JSON:

{ 
    "response": { 
     "success": 1, 
     "current_time": 1369778435, 
     "players": { 
      "0": { 
       "steamid": "76561198037411448", 
       "success": 1, 
       "backpack_value": 185.86, 
       "backpack_update": 1369543543, 
       "name": "Paranoid Android", 
       "stats_tf_reputation": 1, 
       "notifications": 0 
      } 
     } 
    } 
} 

如果$b = json_decode($a),那麼簡單的使用$b['name']將無法​​正常工作。該密鑰未設置。你將不得不遵循對象文字的嵌套。像這樣的東西應該工作:

echo $b['response']['players']['0']['name'];