php - 循环限制到 PHP 中 Telegram 的“inline_keyboard”
问题描述
我正在尝试创建一个数字在 0 到 99 之间的 inline_keyboard。但是循环(一个 for 结构)只显示从 0 到 7。
我的代码:
$data = http_build_query([
'text' => 'Selecciona un numero:',
'chat_id' => $update['message']['from']['id']
]);
$keyboard = array();
for($i=0;$i<100;$i++) {
array_push($keyboard,array("text" => $i,"callback_data" => $i));
}
$resultado = json_encode(['inline_keyboard'=>array($keyboard)]);
// Send keyboard
file_get_contents($botAPI . "/sendMessage?".$data."&reply_markup=".$resultado);
这是我智能手机的截图:
为什么循环只数到七?
解决方案
行。Telegram 每行限制八个按钮。然后,我们在数组中每八个按钮添加行。我的工作代码是:
$keyboard = array();
$linea = array();
for($j=0;$j<100;$j++) {
array_push($linea,array("text" => $j,"callback_data" => $j));
$contadorFilas++;
if($contadorFilas==6) {
array_push($keyboard,$linea);
$linea = array();
$contadorFilas = 0;
}
}
array_push($keyboard,$linea);
$resultado = json_encode(['inline_keyboard'=>$keyboard]);
推荐阅读
- typescript - Typescript:如何声明一个以最安全的方式将枚举映射到类型的泛型类工厂?
- sed - sed 用文件中的所有行替换文件中的 1 行
- go - 如何简单测试文件下载和上传?
- php - 对具有模糊匹配的多个字段进行弹性搜索,并对多个字段组合分数进行排序
- c# - 取消TPL数据流块的正确方法
- python - 删除彩色图像的晕影滤镜
- fopen - 如何在 fopen 上使用 DISP=SHR
- python - Kivy 图像未加载,在电话屏幕角落显示白色方块
- python - 构建用于标记级文本分类的 n-gram
- java - 我在尝试生成 Jasper 报告时得到 Class net.sf.jasperreports.engine.query.PlSqlQueryExecuterFactory not found 异常