PHP json_encode-奇怪的行为 [英] PHP json_encode - Strange behaviour

查看:102
本文介绍了PHP json_encode-奇怪的行为的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用json_encode对日期数组进行编码,它有时会做一件事,有时会做另一件事.

Using json_encode to encode an array of dates, it sometimes does one thing, sometimes does another.

例如,如果我尝试编码类似:

For example, if I'm trying to encode something like:

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"
}

它将输出

["Jun-24","Jun-25","Jun-28","Training-24","Jun-29","Jun-30"]

但是,当我尝试编码类似的内容时:

However, when I try to encode something like:

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"
}

它将输出

{"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"}

(对不起,找不到失败的较小示例)

(Sorry, couldn't find a smaller example where it fails)

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

Point being, why does it do this? The options are the same, the array is structured the same, what's the issue?

推荐答案

您的PHP数组缺少条目8,映射(对象)也缺少列表(数组).

Your PHP array is missing entry 8, so is a mapping (object) and not a list (array).

这篇关于PHP json_encode-奇怪的行为的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆