首页 > 解决方案 > 如何在电报机器人中传递键盘的动态?

问题描述

嗨,我在为电报机器人创建动态键盘时遇到问题 我想用下图中的键盘创建自己的戒指 在 此处输入图像描述

我找到了 C# 代码,但无法将其转换为 PHP 代码:

for (var Index = 1; Index < 17; Index++)
{
    cols.Add(new KeyboardButton("" + Index));
    if (Index%4 != 0) continue;
    rows.Add(cols.ToArray());
    cols = new List<KeyboardButton>();
}
rkm.Keyboard = rows.ToArray();

一个重要的注意事项

我有 40 个号码,我想将 40 个按钮连续分配给 4 个按钮

$reply_markup = array('keyboard' => array(array('1','2','3','4'),  array('5','6','7','8'),....), 'resize_keyboard' => true);

但无论我做什么,我都做不到谢谢你帮助我

标签: phpbotstelegram

解决方案


php你必须使用两个这样的循环:

$rows = 10;
$columns = 4;
$keyboard = [];
for($i = 1;$i<=$rows;$i++){ // loop for create rows.
    $rowKeys = []; // reset row keys
    for($j = 1;$j<=$columns;$j++){ // loop for create columns.
        $rowKeys[] = ['text'=>$i*$j, 'callback_data'=>'key-'.($i*$j)]; // create button with callback data
    }
    $keyboard[] = $rowKeys;
}

$reply_markup = $keyboard;

推荐阅读