Я не могу понять, почему мой цикл массива не работает.
Я пытаюсь зациклить декодированный объект JSON
+"categoryCode": "1122"
+"category_description": "This is the category Description"
+"products": array:24 [▼
0 => {#999 ▼
+"pricing": {#1011 ▼
+"MainPrice": "40.00"
}
+"productInfo": {#1009 ▼
+"product": {#1014 ▼
+"product_type": {#1015 ▼
+"desc": "Test Product"
+"quantDetails": 3.0
}
}
}
}
И построить новый $priceResult
массив из значений, которые мне нужны.Мне нужна информация о категории на первом уровне массива, а затем информация о продукте.
Почему этот цикл не создает мой новый массив правильно?Когда я сбрасываю $ priceResult, я получаю информацию о категории, но затем я просто получаю цену и набор нулевых значений на одном уровне.Я зацикливаюсь и строю новый массив неправильно?
$priceResult = array();
foreach($pricing->categories as $category){
$priceResult[] = $category->categoryCode;
$priceResult[] = $category->category_description;
foreach($category->products as $product){
foreach ($product->pricing as $price => $amount) {
$priceResult[] = $amount;
}
foreach($product->productInfo as $info){
foreach($info->product as $product){
foreach($product->product_type as $type){
$priceResult[] = $type->desc;
$priceResult[] = $type->quantDetails;
}
}
}
}
}
Обновление с выводом:
Вот пример некоторого ошибочного вывода
0 => "CategoryOne"
1 => "1122"
2 => "This is the category Description"
3 => null
4 => null
5 => null
6 => null
7 => null
8 => null
9 => null
10 => null
11 => null
12 => null
13 => null
14 => null
15 => null
16 => null
17 => null
18 => null
19 => "40.00"
20 => null
21 => null
22 => null
23 => null
24 => null
25 => null
26 => null
27 => null
28 => null
29 => null
30 => null
31 => null
32 => null
33 => null
34 => null
35 => null
36 => "50.00"
Обновление с желаемым выводом:
CategoryName : TestCategory
CategoryDescription: For Testing
Products{
0{
Product_code : 123,
CountNumber : 12,
ProductDescription: Test Product,
price_amount : 150.00
},
1{
Product_code : 112,
CountNumber : 32,
ProductDescription: Test Product 2,
price_amount : 250.00
}
}