【问题标题】:json parse multiple objects phpjson解析多个对象php
【发布时间】:2019-03-22 04:11:57
【问题描述】:

我创建了多个 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"
    }
 ]
}

【问题讨论】:

  • 先json_decode($products),然后使用foreach($products as $key=>$value){ //echo products[$key]['product_name']; }
  • @Deepak: json_decode($product) 将返回一个 stdObject,使用 json_decode($product, true) 返回一个数组
  • 我需要先迭代plans并从product json中取product的对应值
  • 您能否发布您的结果数组格式
  • 我需要以下格式输出 Silver Silver Plan(来自 Plan 数组) 产品名称:Plan A(来自 Products 数组)产品价格:100 产品名称:Plan B 产品价格:100 Gold Gold Plan(来自计划数组)产品名称:A计划(来自产品数组)产品价格:100产品名称:B计划产品价格:100

标签: php arrays json foreach


【解决方案1】:

请检查一下。首先,我将products 分开,然后分别迭代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

【讨论】:

  • 白银计划 A 计划 100 计划 B 100 黄金计划 A 计划 100 计划 B 100
  • 正如你的问题中提到的我创建了多个 json 对象数组,即计划和产品。帮助从产品数组中迭代产品的值。我遵循了这个
  • 我建议你再问一个问题。这篇文章回答了你的问题
猜你喜欢
  • 2014-09-24
  • 1970-01-01
  • 2011-05-11
  • 1970-01-01
  • 2015-07-16
  • 1970-01-01
  • 2017-09-13
  • 2021-11-09
  • 2021-05-15
相关资源
最近更新 更多