2015-10-14 36 views
1

想獲得更多的熟悉JSON解碼,所以這裏是我得到的:JSON解碼 - 返回undefined指數

$json = '{"id":[{"tier": "SILVER"}]}'; 
$array = json_decode($json, true); 
var_dump($array["id"]['tier']); 

我想取「梯隊」,但它導致了以下錯誤:Notice: Undefined index: tier

我嘗試了一些東西,如var_dump($array['tier']);,var_dump($array[0]['tier']);但似乎沒有工作,我無法找到關於此的很多信息。

Notice之後,它也返回NULL。任何幫助表示讚賞。

回答

3

結果數組中的id鍵將包含數字索引的數組數組。 要訪問,你需要指定數組中的關鍵,在這種情況下0因爲只有一個單一的元素

var_dump($array["id"][0]['tier']); 

如果你在那裏要解碼的對象,而不是強迫的關聯數組(通過省略在json_decode通話true),你可能會發現語法有點更容易閱讀:

$json = '{"id":[{"tier": "SILVER"}]}'; 
$obj = json_decode($json); 

var_dump($obj->id[0]->tier); 
+0

謝謝你的解釋!這完全回答了我的問題。我會盡可能將您標記爲答案! –

+0

@ShadowBoost沒問題,很高興我能幫到你 – Steve

0

您需要訪問數組中的第一項[0]["id"] 試試這個:

$json = '{"id":[{"tier": "SILVER"}]}'; 
$array = json_decode($json, true); 
var_dump($array["id"][0]['tier']); 
//string(6) "SILVER"