Мне отправляют зацикленное чтение о цикле по JSON массивам!
Я декодировал строку JSON. Он содержит заказы на пиццу и информацию о покупателях. Каждый заказ находится в массиве, первый называется Array [0], второй Array [1] и т.д. c. В каждом массиве есть [products], который содержит Array [0] с деталями первой пиццы, Array [1] с деталями второй et c.
Я не могу на всю жизнь выяснить, как получить доступ к значениям в массиве [products].
Внутри [products] одним из значений является сама строка JSON, но я пока не собираюсь беспокоиться об этом!
Print_R дает мне следующее:
Array [0] => Array ([order_number] => 568
[products] => Array ( [0] => Array (
[item_no] => 1
[item_name] => Full Veggie Pizza
[qty] => 2
[woofood_meta] => {"original_price":"9.0"} )
[1] => Array (
[item_no] => 2
[item_name] => Full Veggie Pizza
[qty] => 1
[woofood_meta] => {"extra_options":{"Extras":
[{"id":61,"price":"\u00a30.50",
"price_float":0.5,"category":"Extras","name":"Jalape\u00f1os",
"hide_prices":false}]},"extra_options_price":0.5,"original_price":"9.0"} )
[2] => Array (
[item_no] => 3
[item_name] => Full Veggie Pizza
[qty] => 1
[woofood_meta] => {"extra_options":{"Extras":
[{"id":57,"price":"\u00a30.50",
"price_float":0.5,"category":"Extras","name":"Extra
veg 1)","hide_prices":false},
{"id": 61, "price": "\ u00a30.50 "," price_float ": 0.5," category ":" Extras "," name ":" Jalape \ u00f1os "," hide_prices ": false}, {" id ": 62," price ":" \ u00a30 .00 "," price_float ": 0," category ":" Extras "," name ":" Chillies "," hide_prices ": false}]}," additional_comments ":" Ананас "," extra_options_price ": 1," original_price ":" 9.0 "})
[3] => Array (
[item_no] => 4
[item_name] => Pepperoni Pizza
[qty] => 1
[woofood_meta] => {"original_price":"8.50"} )
[date_to_deliver] => 2020-07-25 00:00
[time_to_deliver] => 19:00
[full_name] => Freda People
[address] => 22 New St
[city] => Newtown
[postcode] => NT6 6NT
[phone] => 07123 456 789
[email] => freda@gmail.com
[customer_note] => Beware of the dog )
Array [1] => Array ([order_number] => 569 // Так начинается следующий набор массивов
Я могу вывести все сведения об имени и адресе, но ничего из массива [products].
Мой код:
$url = 'orders(1).json';
$jsonobj = file_get_contents($url);
$arr = json_decode($jsonobj, true);
$element = $arr;
foreach($arr as $element) {
for($i=0;$i<count($element.products['$i']);$i++){
echo $element ['order_number']; "<br>";
echo $element ['products[$i].qty']; "<br>";
echo $element ['products[$i].item_name']; "<br>";
echo $element ['products[$i].woofood_meta.name']; "<br>";
echo $element ['products[$i].woofood_meta.additional_comments']; "<br>";
echo $element ['date_to_deliver']; "<br>";
echo $element ['time_to_deliver']; "<br>";
echo $element ['full_name']; "<br>";
}
}
Массив из json по запросу:
[{"order_number": "573", "products": [{"item_no": 1, "item_name": "Неаполитанская пицца", "qty": "1", "woofood_meta": "{" original_price ":" 9,50 "}"}, {"item_no": 2, "item_name": "Маргарита Пицца "," qty ":" 1 "," woofood_meta ":" {"extra_options": {"Extras": [{"id": 59, "price": "\ u00a31.00", "price_float": 1, "category": "Extras", "name": "Extra сыр 1", "hide_prices": false}]}, "extra_options_price": 1, "original_price": "7.50"} "}, {" item_no ": 3 , "item_name": "Cheesy Garli c Bread (v)", "qty": "1", "woofood_meta": "{" original_price ":" 4.5 "}"}], "date_to_deliver": "2020- 07-31 00:00 »,« time_to_deliver »:« 19:00 »,« full_name »:« XXXX XXXX »,« address »:« ZZZZ ZZZZ »,« city »:« VVVVVVVV »,« почтовый индекс »:« 123 456 "," phone ":" 1234567890 "," email ":" xx@yy.com "," customer_note ":" мы все еще защищаем. Спасибо за вашу помощь "}