PHP 中 Telegram 的循环限制为 "inline_keyboard"
Loop limit to "inline_keyboard" for Telegram in PHP
我正在尝试创建一个数字在 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]);
我正在尝试创建一个数字在 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]);