PHP 数组转json_encode,单个数组下标为了0时不对??

在 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));



 

原文地址:https://www.cnblogs.com/wtcl/p/8583441.html