Вложенный цикл foreach в массиве json, отображающий индекс на значение - PullRequest
0 голосов
/ 15 января 2019

У меня сейчас есть декодированный массив JSON

+"productINF": {#1260 ▼
  +"product": {#1011 ▼
    +"productCode": "123"
    +"productType": {#999 ▼
      +"count": 3.0
      +"desc": "Block"
    }
  }
}
+"price": {#1267 ▼
  +"02": "470.00"
}

И я выполняю несколько циклов foreach, чтобы получать информацию с каждого нужного мне уровня. Проблема в том, что у меня есть две вещи на одном уровне, каждый из которых имеет свой собственный массив: productINF и цена.

У первого есть информация о продукте, а у второго - информация о цене. Проблема в том, что в текущем массиве JSON цена равна "02" : "470.00", но иногда может быть несколько цен, например:

+"01": "40.00",
+"05": "240.00"

Я никогда не знаю, каким будет ключ, но я просто хочу убедиться, что каждый элемент foreach, я называю 2-е значение в качестве цены. Вот как я сейчас зацикливаюсь, но я не знаю, как правильно установить цену на значение:

 foreach($category->skus as $sku){
      foreach($sku->productINF as $info){
          $productCode = $info->productCode;

          foreach($info->productType as $type){
              $count = $type->count;
              $desc = $type->desc;
          }
      }
      foreach ($sku->price as $price) {
         //Not sure how to access price here
      }
  }

1 Ответ

0 голосов
/ 15 января 2019

Foreach будет обрабатывать объекты так же, как массивы.

Это должно сделать ...

foreach ($sku->price as $price) {
    foreach ($price as $id => $amount) {
        echo $id , ' ' , $amount , "\n";
    }
}
...