Через POST запрос приходят такой массив, содержащий количество кнопок в один столбец и до четырех кнопок в одну строку. Как создать готовый json через PHP из этих данных? Проблема в том, что создается только в один столблец кнопки
// В таком ввиде приходят на сервер
$keyboard[0][1]['text'] // Первая кнопка 1 стоблец
$keyboard[0][2]['text'] // Вторая кнопка 1 стоблец
$keyboard[0][3]['text'] // Третья кнопка 1 стоблец
$keyboard[0][4]['text'] // Четвертая кнопка 1 стоблец
$keyboard[1][0]['text'] // Первая кнопка 2 стоблец
$keyboard[2][0]['text'] // Первая кнопка кнопка 3 стоблец
$keyboard[2][1]['text'] // Вторая кнопка кнопка 3 стоблец
// Так же цвет и т д
// Вот такой JSON у этой клавиатуры должен получиться
{"one_time":false,"buttons":[[{"action":{"type":"text","payload":"{\"button\": \"1\"}","label":"Кнопка"},"color":"primary"},{"action":{"type":"text","payload":"{\"button\": \"2\"}","label":"Кнопка"},"color":"primary"},{"action":{"type":"text","payload":"{\"button\": \"3\"}","label":"Кнопка"},"color":"primary"},{"action":{"type":"text","payload":"{\"button\": \"4\"}","label":"Кнопка"},"color":"primary"}],[{"action":{"type":"text","payload":"{\"button\": \"1\"}","label":"Кнопка"},"color":"primary"}],[{"action":{"type":"text","payload":"{\"button\": \"1\"}","label":"Кнопка"},"color":"primary"},{"action":{"type":"text","payload":"{\"button\": \"2\"}","label":"Кнопка"},"color":"primary"}]]}
$action = array();
foreach($_POST['keyboard'] as $keyboard) {
foreach($keyboard as $button) {
$actions = [
'action' => array(
"type" => "text",
"payload" => "{\"button\":\"1\"}",
'label' => $button['text'],
),
'color' => $button['color'],
];
$action[] = array($actions);
}
$keyboard = [
"one_time" => false,
'buttons' => $action,
];
}
$json_keyboard = json_encode($keyboard, JSON_UNESCAPED_UNICODE);
Вот такой приходит POST запрос через jQuery с параметрами, их нужно принять и сформировать json для клавиатуры.
Документация:
Клавиатура ботов