如何循环遍历JSON数据php

时间:2019-09-10 11:55:54

标签: php arrays json

我正在尝试遍历php中的JSON数据。

array:2 [
  "cart" => array:3 [
    0 => array:4 [
      "id" => 3
      "name" => "ying"
      "price" => "4000"
    ]
    1 => array:4 [
      "id" => 2
      "name" => "yang"
      "price" => "4000"
    ]
    2 => array:4 [
      "id" => 4
      "name" => "foo"
      "price" => "5000"
    ]
  ]
  "total" => 13000
]

我使用了json_decode函数和对数据的foreach。

foreach (json_decode($arr) as $item) {
    $item['name'];
}

我希望能够获取每个“购物车”商品和单个“总计”数据,但是当我尝试调用$ item ['name']之类的东西时,我一直收到非法的偏移错误

1 个答案:

答案 0 :(得分:0)

根据json_decode文档编写:

  

注意:为TRUE时,返回的对象将转换为关联数组。

如果您不将第二个参数传递为true,则将其视为对象,如下所示。

$names  = [];
$arr = json_decode($arr, true);
foreach ($arr['cart'] as $item) {
    $names[] = $item['name'];
}
echo $arr['total'];// this is how you will get total.

如果将第二个参数传递为true,则将其视为关联数组,如下所示。

cart

在您的代码中,您的数据具有两个主键,即。 totalcart。从那里,您正在尝试获取我在答案中指定的{ "/api": { "target": "http://localhost:5000", "secure": false, "changeOrigin": true, "logLevel":"debug" } } 的数据。