Задать вопрос
@AleDv

Как ассоциативный массив в PHP перегнать в JSON массив?

Всем привет. Есть задача сгенерировать JSON объект клавиатуры для бота в Вк. Структура следующая:

{ 
    "one_time": false, 
    "buttons": [
        [{ 
                "action": { 
                    "type": "text", 
                    "payload": "{\"button\": \"1\"}", 
                    "label": "Negative" 
                }, 
                "color": "negative" 
            }, 
            { 
                "action": { 
                    "type": "text", 
                    "payload": "{\"button\": \"2\"}", 
                    "label": "Positive" 
                }, 
                "color": "positive" 
            }, 
            { 
                "action": { 
                    "type": "text", 
                    "payload": "{\"button\": \"2\"}", 
                    "label": "Primary" 
                }, 
                "color": "primary" 
            }, 
            { 
                "action": { 
                    "type": "text", 
                    "payload": "{\"button\": \"2\"}", 
                    "label": "Secondary" 
                }, 
                "color": "secondary" 
            } 
        ] 
    ] 
}


Проблема в том, что элемент buttons - массив, а json_encoding все ассоциативные массивы конвертит в объекты, а не массивы.

Например, такую структуру
$buttons = [
            "action" => [
                "type" => "location"
            ]
        ];

        $keyboard = [
            'one_time' => true,
            'buttons' => $buttons
        ];

сконвертит в такие объекты:

{"one_time":true,"buttons":{"action":{"type":"location"}}}


Элемент buttons - объект. Как сделать, что бы он был массивом?
  • Вопрос задан
  • 454 просмотра
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Feaxer
@Feaxer
Программист-фрилансер
$buttons = [
["action" => [
"type" => "location"
]]
];
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽