JSON解析多个对象的PHP

时间:2019-03-22 04:11:58

标签: php arrays json foreach

我创建了多个json对象数组,即计划和产品。请帮助我从产品数组迭代产品的价值。

{
  "plans": [
    "silver",
    {
        "plan_name": "Silver Plan",
        "products": ["A", "B"],
        "price": "1000"
    },
    "gold",
    {
        "plan_name": "Gold Plan",
        "products": ["A", "B"],
        "price": "2000"
    }
 ],
"products": [
    "A",
    {
        "product_name": "Plan A",
        "price": "100"
    },

    "B",
    {
        "product_name": "Plan B",
        "price": "100"
    },
    "C",
    {
        "product_name": "Plan C",
        "price": "100"
    }
 ]
}

1 个答案:

答案 0 :(得分:0)

请检查此内容。首先,我分离了products,然后分别迭代产品数组。

      <?php
  $str = '{ "plans": [ "silver", { "plan_name": "Silver Plan", "products": ["A", "B"], "price": "1000" }, "gold", { "plan_name": "Gold Plan", "products": ["A", "B"], "price": "2000" } ], "products": [ "A", { "product_name": "Plan A", "price": "100" },
      "B",
      {
          "product_name": "Plan B",
          "price": "100"
      },
      "C",
      {
          "product_name": "Plan C",
          "price": "100"
      }
  ]
  }';
  $products = json_decode($str);
  // print_r($products);
  foreach($products as $key=>$value)
  {

      if($key=='products')
      {
        foreach ($value as $key1 => $value1) {
          if(!is_object($value1))
          echo $value1 . '<br>';//will echo A,B,C
          if(is_object($value1))
          {
            foreach ($value1 as $key2 => $value2) {
              echo $value2 . '<br>';//Will echo product_name and price
            }
          }
        }
      }
  }

结果

A
Plan A
100
B
Plan B
100
C
Plan C
100