2015-10-14 37 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"