PHP json_decode()是否总是保留JSON数组的数组顺序?

时间:2014-05-23 03:05:41

标签: php json

是字符串

 ["first","second","third"]

始终保留数组顺序并导致PHP数组

array('first','second','third');

使用json_decode()时?我意识到答案是对象没有,但我问的是一个表示数组的字符串作为输入。

2 个答案:

答案 0 :(得分:2)

是。数组按定义排序,JSON保留了它。

JSON specification说:

  

数组结构是一对围绕零个或多个值的方括号标记。价值观是   被逗号隔开。值的顺序很重要。

最后一句意味着改变顺序的JSON编码器或解码器不符合规范。我在PHP文档中找不到明确表示它遵守此要求的任何内容,但我认为可以假设它声称它实现了JSON。

答案 1 :(得分:1)

是的,将保留订单。

或者,您可以使用强制转换数组来对象,因为对象变量的顺序不会被修改json_encode((object)$arr)