0
$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"]);

$arr["other_option"] = "2123"; 4 行目を削除すると、最後の 2 つの var_dump の出力は NULL NULL になります。正しく出力されますが、理由がわかりません!

4

1 に答える 1

2

array への型キャストの代わりに、true設定json_encode

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

于 2012-08-10T09:31:56.190 に答える