【发布时间】:2011-01-13 06:40:55
【问题描述】:
这段代码的结果:
for($i = 0; $i <= 7; $i++){
$eachone[] = array ('a' => '1', 'b' => '2', 'c' => '3');
$a[] = array($i => $eachone);
unset($eachone);
}
$json_string = json_encode($a);
echo $json_string;
是:
[
[
[
{
"a": "1",
"b": "2",
"c": "3"
}
]
],
{
"1": [
{
"a": "1",
"b": "2",
"c": "3"
}
]
},
{
"2": [
{
"a": "1",
"b": "2",
"c": "3"
}
]
},
{
"3": [
{
"a": "1",
"b": "2",
"c": "3"
}
]
},
{
"4": [
{
"a": "1",
"b": "2",
"c": "3"
}
]
},
{
"5": [
{
"a": "1",
"b": "2",
"c": "3"
}
]
},
{
"6": [
{
"a": "1",
"b": "2",
"c": "3"
}
]
},
{
"7": [
{
"a": "1",
"b": "2",
"c": "3"
}
]
}
]
你能注意到它是如何跳过第一个数字,即零吗?问题是:为什么?
【问题讨论】:
-
你用的是什么版本的PHP?
-
我可以在 5.3.0 上复制它。问题在于 json_encode — print_r'ing $a 数组表明它已正确索引。
-
嗯。我可以在 PHP 5.1.6 上复制它。谷歌搜索似乎一无所获,也就是说没有直接的搜索词。 +1。
-
您使用的是 PHP 5.1.6!??!该死的更新你的服务器!