@Httdientee

Не выводятся кнопки в ряд php?

array_push($list['inline_keyboard'], array(array('text' => $cat['name'], 'callback_data' => $cat['name'])));


Сейчас так
61c8b5cee10ef897859643.png

А нужно в ряд, в чем здесь ошибка? Вроде данные в одном массиве, и они по сути должны выводится в ряд
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ambal245
$url = "https://qna.habr.com/q/1093980";
$buttons[] = $this->buildInlineKeyBoardButton('Кнопка 1', '1');
$buttons[] = $this->buildInlineKeyBoardButton('Кнопка 2', '2');
$buttons[] = $this->buildInlineKeyBoardButton('Кнопка 3', '3');
$buttons[] = $this->buildInlineKeyBoardButton('Кнопка 4', '', $url );
$buttons[] = $this->buildInlineKeyBoardButton('Кнопка 5', '5');
// разбиваем кнопки по рядам
array_chunk($buttons, 3); // 3 кнопки в ряду

public function buildInlineKeyboardButton($text, $callback_data = '', $url = '')  {
        // рисуем кнопке текст
        $replyMarkup = [  'text' => $text,  ];
        // пишем одно из обязательных дополнений кнопке
        if ($url != '') { 
             $replyMarkup['url'] = $url;
        } elseif ($callback_data != '') {
             $replyMarkup['callback_data'] = $callback_data;
        }
        // возвращаем кнопку
        return $replyMarkup;
    }
    public function buildInlineKeyBoard(array $options)  {
        // собираем кнопки
        $replyMarkup = [
            'inline_keyboard' => $options,  ];
        // преобразуем в JSON объект
        $encodedMarkup = json_encode($replyMarkup, true);
        // возвращаем клавиатуру
        return $encodedMarkup;
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы