此代码的结果:
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"
}
]
}
]
你能注意到它是如何跳过第一个数字,这是零吗?问题是:为什么?
答案 0 :(得分:2)
你想要json_encode($ a,JSON_FORCE_OBJECT)。不幸的是,它只在5.3中添加。
答案 1 :(得分:0)
你没有索引你的数组
for($i = 0; $i <= 7; $i++)
{
$eachone[$i] = array ('a' => '1', 'b' => '2', 'c' => '3');
$a[$i] = array($i => $eachone);
unset($eachone);
}
$json_string = json_encode($a);
echo $json_string;
**编辑:**如果我执行print_r($ a),在我的笔记本电脑上;我得到这个数组:哪个设置为零
Array
(
[0] => Array
(
[0] => Array
(
[0] => Array
(
[a] => 1
[b] => 2
[c] => 3
)
)
)
[1] => Array
(
[1] => Array
(
[0] => Array
(
[a] => 1
[b] => 2
[c] => 3
)
)
)
[2] => Array
(
[2] => Array
(
[0] => Array
(
[a] => 1
[b] => 2
[c] => 3
)
)
)
[3] => Array
(
[3] => Array
(
[0] => Array
(
[a] => 1
[b] => 2
[c] => 3
)
)
)
[4] => Array
(
[4] => Array
(
[0] => Array
(
[a] => 1
[b] => 2
[c] => 3
)
)
)
[5] => Array
(
[5] => Array
(
[0] => Array
(
[a] => 1
[b] => 2
[c] => 3
)
)
)
[6] => Array
(
[6] => Array
(
[0] => Array
(
[a] => 1
[b] => 2
[c] => 3
)
)
)
[7] => Array
(
[7] => Array
(
[0] => Array
(
[a] => 1
[b] => 2
[c] => 3
)
)
)
)
答案 2 :(得分:0)
这是一个黑客,但你可以添加一个虚拟元素。
$a = array('dummy'=>1);
for($i = 0; $i <= 7; $i++) {
...