在 php 数组转json时,假如 有一个数组下标是顺序的,他json_encode后会直接变成一个简版二维json,
$arr = ['1'=>1,'2'=>2];
echo (json_encode($arr));
//答案是 {"c":1,"b":2}
这确实是正常的数组,
但是 如果是这样的数组
$arr = ['0'=>11,'1'=>22];
echo (json_encode($arr));
//[11,22]
是不是觉得很奇怪,为什么会是这样的?
为什么不是 {"0":11,"1":22}
这个看起来很不爽了,有强迫症,所以想翻了下手册
可以写成这样
echo (json_encode($arr,JSON_FORCE_OBJECT));
//{"0":11,"1":22}
如果数组里有中文还可以这样
echo (json_encode($arr,JSON_FORCE_OBJECT|JSON_UNESCAPED_UNICODE));