php - 如何在电报机器人中传递键盘的动态?
问题描述
嗨,我在为电报机器人创建动态键盘时遇到问题 我想用下图中的键盘创建自己的戒指 在 此处输入图像描述
我找到了 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);
但无论我做什么,我都做不到谢谢你帮助我
解决方案
在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;
推荐阅读
- php - 在 laravel 中如何在方法中传递请求实例
- sql-server - Terada 中的 BIGINT 到 INT 转换
- javascript - 如果当前显示虚拟键盘,则提交表单按钮需要在移动设备上单击两次
- gradle - 使用 Gradle 配置 Swagger 代码生成器。提供的 Gradle 脚本如何工作?
- java - 有没有办法使用意图将任何类型的文件附加到电子邮件中?
- javascript - 使用 .filter 从数组中删除一个项目并返回新数组
- c# - 如何在 .Net C# Windows 窗体中将文件上传到 Firebase 存储?
- python - 如何增强脚本以从多个 CSV 文件中查找
- c# - 为什么这个属性没有在我的 mvc 项目中被序列化?
- pandas - pd.datetime 没有正确索引