我正在制作一个将json数据返回到javascript文件的php文件.目前它只返回最后一个json对象并忽略其余的json对象.这是我的PHP代码
$arr = array(
"cartId" => 456186,
"lastModified" => "Tue, 19 Jan 2010 03:14:07 GMT",
"items" => array(
15642,
45616,
54984,
45751
),
"cartId" => 456187,
"lastModified" => "Tue, 20 Jan 2010 04:14:07 GMT",
"items" => array(
'item' => 15643,
'item' => 45617,
'item' => 54985,
'item' => 45752
)
);
echo json_encode($arr);
Run Code Online (Sandbox Code Playgroud)
上面的代码返回以下
{"cartId":456187,"lastModified":"Tue, 20 Jan 2010 04:14:07 GMT","items":{"item":45752}}
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
这应该工作:
$arr = array(
array(
"cartId" => 456186,
"lastModified" => "Tue, 19 Jan 2010 03:14:07 GMT",
"items" => array(
15642,
45616,
54984,
45751
)
),
array(
"cartId" => 456187,
"lastModified" => "Tue, 20 Jan 2010 04:14:07 GMT",
"items" => array(
15643,
45617,
54985,
45752
)
)
);
echo json_encode($arr);
Run Code Online (Sandbox Code Playgroud)
您的错误的原因是因为您不能在PHP数组(或JSON对象)中有重复的键.后面的键覆盖了前者,并创建了一个较小版本的数组.
在这里,我们将项目分组为子数组.