我在格式化json时遇到了麻烦。基本上我有这个脚本结构,
$array1 = array();
for($i = 0; $i < 2 ; $i++)
{
$array1[] = array
(
"stocks" => array
(
"0" => "apple"
"1" => "banana"
"2" => "mango"
)
);
}
执行时,输出(采用JSON格式):
{
stocks:
{
0 : apple,
1 : banana,
2 : mango
}
}
{
stocks:
{
0 : apple,
1 : banana,
2 : mango
}
}
我的问题是,我必须做出哪些改变才能产生这样的输出:
{
stocks:
{
0 : apple,
1 : banana,
2 : mango
},
stocks:
{
0 : apple,
1 : banana,
2 : mango
}
}
答案 0 :(得分:5)
我认为最简单的格式如下:
$array1 = array();
for($i = 0; $i < 2 ; $i++)
{
$array1['stocks'][] = array
(
"0" => "apple"
"1" => "banana"
"2" => "mango"
);
}
将显示如下输出:
{
stocks: [
{
0 : apple,
1 : banana,
2 : mango
},
{
0 : apple,
1 : banana,
2 : mango
}
]
}
答案 1 :(得分:1)
您的数组键必须是唯一的。如果它们不是,那么当前项目的值将在for循环中的每次迭代中被覆盖。
$arr = array();
for ($i = 0; $i < 2 ; $i++) {
$arr["stocks{$i}"] = array(
"0" => "apple"
"1" => "banana"
"2" => "mango"
);
}
答案 2 :(得分:1)
数组(或对象)中不能有两个具有相同键的元素。如果你想将它们放在一个数组中,你必须为每个数组分配单独的键,如下所示:
$array1 = array();
for($i = 0; $i < 2 ; $i++)
{
$array1["stocks{$i}"] = array
(
"0" => "apple"
"1" => "banana"
"2" => "mango"
);
}
哪个会输出:
{
stocks0:
{
0 : apple,
1 : banana,
2 : mango
},
stocks1:
{
0 : apple,
1 : banana,
2 : mango
}
}