JSON 编码和解码(字符串)数字索引数组



所以我偶然发现了这个问题,将数组转换为JSON并返回数组。我使用该函数将数组存储在数据库中。

法典:

$array = array(
1 => 'first',
'200'  => 'second'
);
$array = json_encode($array);
$array = json_decode($array);
$array = (array)$array;
echo "<pre>"; var_dump($array);
var_dump(array_key_exists(1, $array));
var_dump(array_key_exists(200, $array));
var_dump(array_key_exists('1', $array));
var_dump(array_key_exists('200', $array));

输出:

array(2) {
["1"]=>
string(5) "first"
["200"]=>
string(6) "second"
}
bool(false)
bool(false)
bool(false)
bool(false)

有什么解释吗?溶液?谢谢?

而不是

$array = json_encode($array); $array = json_decode($array); $array = (array)$array;

你只需要添加一个参数就可以在json_decode中转换为数组

$encoded_array = json_encode($array); $array = json_decode($encoded_array, true);

请参阅有关 http://php.net/manual/en/function.json-decode.php 中json_decode()的文档

最新更新