You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置Telegram内联按钮每行显示2个?附PHP代码

动态生成每行2个的Telegram内联按钮

你的现有代码是手动硬编码固定数量的按钮,无法适配数据库返回的任意数量数据。可以通过以下步骤实现动态生成:

  1. 将数据库数据转换为按钮结构数组:把每个jonre值转换成Telegram要求的按钮格式
  2. 按每行2个分组:用array_chunk函数把按钮数组分割成每2个元素一组的子数组,正好对应内联键盘的每行

修改后的完整代码:

// 从数据库获取数据
$jonres = [];
while($row = $result->fetch_assoc()){
    $jonres[] = $row['jonre'];
}

if (isset($update['callback_query'])) {
    // 生成按钮结构数组
    $buttonArray = [];
    foreach($jonres as $item) {
        $buttonArray[] = [
            "text" => $item,
            "callback_data" => $item
        ];
    }
    // 按每行2个按钮分组
    $inlineKeyboard = array_chunk($buttonArray, 2);

    // 发送编辑消息请求
    MessageRequestJson("editMessageText", [
        'chat_id' => $callback_username,
        'message_id' => $callback_messageId,
        'text' => 'ali',
        'reply_markup' => [
            "inline_keyboard" => $inlineKeyboard
        ]
    ]);
}

关键部分说明:

  • array_chunk函数:这个函数会把一维数组分割成指定长度的多维数组,这里设置为2,正好实现每行2个按钮的布局
  • 动态按钮生成:通过遍历数据库返回的所有jonre值,自动生成对应的按钮,不管数据有多少条都能适配
  • 奇数数据处理:如果数据库返回的数量是奇数,最后一行会自动只显示1个按钮,Telegram内联键盘支持这种布局

内容的提问来源于stack exchange,提问作者mehdi mehrani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 15:15:09