我有以下数组结构:
Array
(
[t] => 812
[0] => Array
(
[5] => 649
[6] => 12
)
[2] => Array
(
[0] => 10
)
[3] => Array
(
[0] => 1
)
[4] => Array
(
[0] => 152
)
)
目前所有数组索引(除了t)都是整数。
我想使用json_encode()将它转换为它的JSON等价物,但是当我这样做时,任何只有一个索引(索引0)的数组都会被转换为整数而不是数组。
E.g。
[2] => Array
(
[0] => 10
)
转换为..
{"2":[10]
而不是..
{"2":[0:10]
如果能解决问题,JSON可以使用字符串索引而不是整数。
{"2":["0":10]}
关于如何解决这个问题的任何想法?
答案 0 :(得分:4)
它们不会转换为单个整数,而是转换为只包含一个元素的数组!
在JSON中,方括号[]
表示数组,而大括号{}
表示对象。
如果您想强制json_encode
输出对象,例如您的示例,则可以选择JSON_FORCE_OBJECT
(see docu)选项:
$encoded = json_encode( yourArray, JSON_FORCE_OBJECT );
答案 1 :(得分:2)
在JSON_FORCE_OBJECT
中使用json_encode
标记。