@fakin_kiska
Telegram Bots

Почему бот выдает лишнюю кнопку на динамической клавиатуре?

Есть динамическая клавиатура у телеграм бота, количество кнопок которой зависит от строк в базе данных, текст в этих кнопках это обычные символы.

Проблема заключается в том, что если я попытаюсь добавить дополнительные символы, то бот выдаст на 1 кнопку больше, текстом которой будут служить эти добавленные символы

Пример:

Код клавиатуры без добавления символов

$rows = $array_count;
        $columns = 1;
        $keyboard = [];
        for ($i = 0; $i <= $rows; $i++) {
            $rowKeys = [];
            for ($j = 1; $j <= $columns; $j++) {
                $token_get = secret_token_get($user_id)[$i];
                $token_symbols = substr($token_get['token'], -5);
                $rowKeys[] = ['text' => $token_symbols, 'callback_data' => 'token-' . $i]; // Нумерация токенов
            }
            $keyboard[] = $rowKeys;
        }


Ответ бота

61f1db4d7e4ef968311516.png

Код с добавлением звездочек

$rows = $array_count;
        $columns = 1;
        $keyboard = [];
        for ($i = 0; $i <= $rows; $i++) {
            $rowKeys = [];
            for ($j = 1; $j <= $columns; $j++) {
                $token_get = secret_token_get($user_id)[$i];
                $token_symbols = substr($token_get['token'], -5);
                $rowKeys[] = ['text' => '***' . $token_symbols, 'callback_data' => 'token-' . $i]; // Нумерация токенов
            }
            $keyboard[] = $rowKeys;
        }


Ответ бота с лишней кнопкой

61f1db8d5b00b033103521.png

В чем может быть причина и как ее исправить?
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
Вы итерируете от нуля до количества элементов в массиве, включительно. А нужно - не включительно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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