Перебор массива PHP

254
17 февраля 2018, 23:23

Вопрос банальный, но не могу понять как мне разобрать массив на ключи и значения, что-бы потом положить их в 1 переменную и отправить функцией mail()

   object(stdClass)#5 (2) {
  ["Супермясная 3"]=>
  object(stdClass)#4 (6) {
    ["price"]=>
    string(3) "695"
    ["quantity"]=>
    string(1) "1"
    ["description"]=>
    string(0) ""
    ["totalPrice"]=>
    int(695)
    ["name"]=>
    string(24) "Супермясная 3"
    ["productSize"]=>
    string(7) "27 см"
  }
  ["Сытные палочки с чоризо"]=>
  object(stdClass)#6 (6) {
    ["price"]=>
    int(295)
    ["quantity"]=>
    string(1) "1"
    ["description"]=>
    string(222) "Легкие брусочки тонкого теста, покрытые сыром и начинкой из пикантных колбасок чоризо с соусом Чипотл Саусвест. 8 палочек"
    ["totalPrice"]=>
    int(295)
    ["name"]=>
    string(43) "Сытные палочки с чоризо"
    ["image"]=>
    string(31) "assets/img/zakuski/palochka.jpg"
  }
}

Этот массив получился после того как я распарсил JSON, длина его может быть любой, как можно его перебрать и выбрать нужные поля для отправки в mail()? Заранее спасибо!

P.S. изначальный JSON

{"Супермясная 3":{"price":"695","quantity":"1","description":"","totalPrice":695,"name":"Супермясная 3","productSize":"27 см"},"Сытные палочки с чоризо":{"price":295,"quantity":"1","description":"Легкие брусочки тонкого теста, покрытые сыром и начинкой из пикантных колбасок чоризо с соусом Чипотл Саусвест. 8 палочек","totalPrice":295,"name":"Сытные палочки с чоризо","image":"assets/img/zakuski/palochka.jpg"}}
Answer 1

По моему все просто:

$json = '{"Супермясная 3":{"price":"695","quantity":"1","description":"","totalPrice":695,"name":"Супермясная 3","productSize":"27 см"},"Сытные палочки с чоризо":{"price":295,"quantity":"1","description":"Легкие брусочки тонкого теста, покрытые сыром и начинкой из пикантных колбасок чоризо с соусом Чипотл Саусвест. 8 палочек","totalPrice":295,"name":"Сытные палочки с чоризо","image":"assets/img/zakuski/palochka.jpg"}}';
$data = json_decode($json, true);
foreach ($data as $key => $values) {
    // здесь отбираешь что надо
}
Answer 2

Это не массив а объект, чтобы получился массив нужно json_decode($jsonString,true); А дальше самый простой вариант перебором или любым хелпером для массивов

READ ALSO
Вывод количества проголосовавших

Вывод количества проголосовавших

ЗдравствуйтеРаботаю над системой голосования на сайте, есть 3 таблицы: quiz_quest - вопросы, quiz_answ - варианты ответов, quiz_uansw - ответы посетителей

229
Как объявить объект System.String C++

Как объявить объект System.String C++

Не понимаю, как объявить и использовать объекты класса System StringНа msdm информации как таковой нет, примеров в интернете тоже не нашел

202