@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 - объект. Как сделать, что бы он был массивом?
  • Вопрос задан
  • 414 просмотров
Решения вопроса 1
Feaxer
@Feaxer
Программист-фрилансер
$buttons = [
["action" => [
"type" => "location"
]]
];
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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