PHP文件不返回完整的json数据

Om3*_*3ga 0 php json

我正在制作一个将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)

我该如何解决这个问题?

Ale*_*ver 8

这应该工作:

$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对象)中有重复的键.后面的键覆盖了前者,并创建了一个较小版本的数组.

在这里,我们将项目分组为子数组.

  • 这是此代码运行的输出:[{"cartId":456186,"lastModified":"星期二,2010年1月19日03:14:07 GMT","项目":[15642,45616,54984,45751]}, {"cartId":456187,"lastModified":"星期二,2010年1月20日04:14:07 GMT","项目":{"item":45752}}] (2认同)