ZavulonP
@ZavulonP

Как сформировать json в следующем виде? Какой алгоритм применить?

Мне нужно сделать json как в этом примере:
"attribute_groups": [
    {
      "id": "sides_1",
      "name": "Choose a side",
      "min": 0,
      "max": 1,
      "collapse": true,
      "multiple_selection": false,
      "attributes": [
        "side_1",
        "side_2",
        "side_3",
        "side_4"
      ]
    }
  ]

Вот как я реализовал всю часть до "attributes":
foreach ($attribute_groups as $attribute_group) {
                $attribute_groups_new[] =
                    [
                        'id' => $attribute_group->external_id_attribute_groups,
                        'name' => $attribute_group->attribute_group_name,
                        'min' => $attribute_group->min,
                        'max' => $attribute_group->max,
                        'collapse' => $attribute_group->collapse_by_default,
                        'multiple_selection' => $attribute_group->multiple_selection,
                        'attributes' => [

                                        ]                      
                    ];
            }

'attributes' у меня берутся из БД и выглядят они там следующим образом:
628418e40400e992922030.png
Три "картежа" и в каждом может быть по 1-5 атрибутов, в данном случае 3 2 и 2.
Как сделать чтобы данные (атрибуты) заполнялись в json так как я указал выше? При том что attribute_groups может быть множество и каждый из них содержит в себе эти атрибуты.
В общем должно получится так:
"attribute_groups": [
      {
        "id": "ATTRGR-001",
        "name": "?Want some drinks with it?",
        "min": "1",
        "max": "6",
        "collapse": "no",
        "multiple_selection": "yes",
        "attributes": [
          "ATTR-999",
          "ATTR-998",
          "ATTR-997"
        ]
      }
    "attribute_groups": [
      {
        "id": "ATTRGR-736",
        "name": "Let's party",
        "min": "1",
        "max": "1",
        "collapse": "no",
        "multiple_selection": "no",
        "attributes": [
          "ATTR-1200",
          "ATTR-1201"
        ]
      }
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ответы на вопрос 1
@VadimFox
explode?

explode(',', $attribute_group['attributes'])
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы