如果你想生成一个json格式的数组格式,而不是对象格式,那么数据的下标:1、必须是数字下标索引。2、必须从0开始。3、必须从小到大依次增加,中间不可跳跃、顺序不可变动。
如果想将索引数组强制转换为对象:
1.json_encode((object) $a);
2.json_encode($a, JSON_FORCE_OBJECT);
例子:
$a = [];(下标不是从0开始,json_encod会将它转换为对象)
$a[1] = 'a';
$a[2] = 'b';
$b = [];
$b[0] = 'a';
$b[1]='b';
$c = $a;
print_r($c);
print_r(array_values($a));
print_r($b);
print_r(json_encode($a));
print_r(json_encode($b));
输出:
Array([1] => a [2] => b)
Array([0] => a [1] => b)
Array([0] => a [1] => b)
{"1":"a","2":"b"}
["a","b"]