PHP json_encode - 奇怪的行为

Tim*_*imr 2 php json behavior

使用json_encode编码日期的阵列,它有时做一两件事,有时做另一个.

例如,如果我正在尝试编码如下:

array(6) {
  [0]=>
  string(6) "Jun-24"
  [1]=>
  string(6) "Jun-25"
  [2]=>
  string(6) "Jun-28"
  [3]=>
  string(11) "Training-24"
  [4]=>
  string(6) "Jun-29"
  [5]=>
  string(6) "Jun-30"
}
Run Code Online (Sandbox Code Playgroud)

它会输出

["Jun-24","Jun-25","Jun-28","Training-24","Jun-29","Jun-30"]
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试编码类似的东西时:

array(17) {
  [0]=>
  string(6) "Jun-23"
  [1]=>
  string(6) "Jun-24"
  [2]=>
  string(6) "Jun-28"
  [3]=>
  string(11) "Training-24"
  [4]=>
  string(6) "Jun-29"
  [5]=>
  string(6) "Jun-30"
  [6]=>
  string(6) "Jul-06"
  [7]=>
  string(6) "Jul-07"
  [9]=>
  string(6) "Jul-09"
  [10]=>
  string(6) "Jul-16"
  [11]=>
  string(6) "Jul-17"
  [12]=>
  string(6) "Jul-20"
  [13]=>
  string(6) "Jul-23"
  [14]=>
  string(6) "Jul-24"
  [15]=>
  string(6) "Jul-30"
  [16]=>
  string(6) "Aug-01"
  [17]=>
  string(6) "Aug-05"
}
Run Code Online (Sandbox Code Playgroud)

它会输出

{"0":"Jun-23","1":"Jun-24","2":"Jun-28","3":"Training-24","4":"Jun-29","5":"Jun-30","6":"Jul-06","7":"Jul-07","9":"Jul-09","10":"Jul-16","11":"Jul-17","12":"Jul-20","13":"Jul-23","14":"Jul-24","15":"Jul-30","16":"Aug-01","17":"Aug-05"}
Run Code Online (Sandbox Code Playgroud)

(抱歉,找不到失败的小例子)

重点是,它为什么这样做?选项是一样的,数组结构相同,问题是什么?

Eri*_*ric 8

您的PHP数组缺少条目8,因此是映射(对象)而不是列表(数组).