我是json_encoding一个多维数组,转储如下:
$array =
Array
(
[a] = Array
(
[0] = Array
(
[x0] = some-string
[y0] = some-string
)
[1] = Array
(
[x1] = some-string
[y1] = some-string
)
)
[b] = Array
(
[b1] = Array
(
[0] = Array
(
...
)
)
[b2] = Array
(
[0] = Array
(
...
)
)
...
)
)
但如果我执行以下操作并转储结果:
$json = json_encode( $array );
json_decode( $json, true );
仅返回数组“a”:
Array
(
[a] = Array
(
[0] = Array
(
[x0] = some-string
[y0] = some-string
)
[1] = Array
(
[x1] = some-string
[y1] = some-string
)
...
)
)
)
我的第一个想法是导致解析错误的无效字符,但json_decode应该只从解析错误中返回null,而不是部分解析的数组。
附加信息:原始数组嵌套最多9个级别,编码时为~52,000个字符串。
更新:我在PHP 5.2.11上看到了这个问题,所以json_last_error()不可用。我们在许多不同的服务器上运行此代码,这是此问题的唯一情况,因此我猜测它是基于服务器的问题,而不是基于代码的问题,无论值得做什么。
有什么想法吗?