@foxxx1234

Как сделать кнопки в ряд для telegram бота?

Пытаюсь сделать по 3кнопки в ряд для телеграм бота
Есть скрипт
$countrys = DB::$the->query("SELECT * FROM `set_country` WHERE `active` = '1' ");
while ($country = $countrys->fetch()) {
$keyboard[] = [['text' => $country['name'], 'callback_data' => 'orderNumber ' . $country['provider_type']]];
}
$bot->sendInlineKeyboard($id, $text, $keyboard);

Сейчас выводит по 1 в ряд. Чтобы выводило по 3 кнопки нужно сделать

$keyboard[] = [['text' => $country['name'], 'callback_data' => 'orderNumber ' . $country['provider_type']],['text' => $country['name'], 'callback_data' => 'orderNumber ' . $country['provider_type']],['text' => $country['name'], 'callback_data' => 'orderNumber ' . $country['provider_type']]];
Но вот как создать такой массив не могу понять
  • Вопрос задан
  • 423 просмотра
Решения вопроса 1
erniesto77
@erniesto77
oop, rb, py, php, js
keyboard принимает ряды линий с кнопками. Получается что первый массив это первый ряд кнопок и так далее. Причем если вы в одном из рядов кнопок укажите 2 кнопки, то они растянутся по ширине тела мессенджера по 50% шириной. Или если вы поставите в один ряд 4 кнопки, то они будут по 25%
$keyboard = [];

$1stButtonsLine = ['Раз', 'Два', 'Три'];
$2ndButtonsLine = ['Четыре', 'Пять', 'Шесть']

array_push($keyboard, $1stButtonsLine);
array_push($keyboard, $2ndButtonsLine);


в этом примере будут 2 строки с кнопками с шириной по 33%
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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