无法访问从json_decode创建的stdClass转换的数组中的元素

时间:2012-08-10 09:25:02

标签: php json stdclass

$arr = array();
$arr[0] = "2a123";
$arr[1] = "2123";
$arr["other_option"] = "2123";

var_dump($arr);

$arr = json_encode($arr);

$arr = (array)json_decode($arr);

var_dump($arr);

var_dump( $arr[1]);
var_dump( $arr["1"]);

2最后一个var_dump的输出是NULL NULL,如果我们删除第4行$ arr [“other_option”] =“2123”;它会正确输出,但我不明白为什么!

1 个答案:

答案 0 :(得分:2)

而不是类型转换为数组,在json_encode

中设置true
  

当为TRUE时,返回的对象将被转换为关联数组。

$arr = array();
$arr[0] = "2a123";
$arr[1] = "2123";
$arr["other_option"] = "2123";
$arr = json_encode($arr);   
$arr = json_decode($arr,true);
var_dump( $arr['other_option']); // return 2123

working DEMO