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

如何在LucidFrame ConsoleTable中实现表格每两行重复表头

实现每2行重复表头的代码调整方案

核心逻辑是加入行数计数器,每累计满2行就输出当前分段的表格内容,重置表格实例后重新加载表头和头部声明,继续处理后续数据。

调整后的完整代码如下:

// 初始化总内容拼接变量,先加入首次的头部声明
$totalContent = $finalHead;
// 行数计数器
$rowCount = 0;

// 首次初始化表格
$table = new ConsoleTable();
$table->setHeaders($strData->header)->hideBorder();

foreach ($strData->body as $ins) {
    $items = [];
    foreach ($ins as $key => $value) {
        $items[] = $value;
    }
    $table->addRow($items);
    $rowCount++;

    // 每满2行就输出当前段,重置表格准备下一段
    if ($rowCount == 2) {
        // 拼接当前段的表格内容
        $totalContent .= $table->getTable();
        // 加入下一段的头部声明
        $totalContent .= $finalHead;
        // 重置表格实例,重新加载表头
        $table = new ConsoleTable();
        $table->setHeaders($strData->header)->hideBorder();
        // 计数器归零
        $rowCount = 0;
    }
}

// 循环结束后拼接剩余不足2行的内容
if ($rowCount > 0) {
    $totalContent .= $table->getTable();
}

// 统一加底部边框和页脚
$totalContent .= (new ConsoleTable())->addBorderLine()->getTable() . $finalFooter;

// 写入文件
fwrite($fp, str_replace(['<pre >', '</pre>'], '', $totalContent));
fclose($fp);

关键改动说明

  • 新增$totalContent变量分段拼接所有内容,避免单次生成全表时无法插入重复表头的问题
  • 新增$rowCount计数器控制插入表头的频率,满2行就重置表格重新加载表头和头部声明
  • 循环结束后额外处理剩余不足2行的数据,避免内容遗漏
  • 末尾统一加底部边框,保证输出格式和需求完全匹配

内容的提问来源于stack exchange,提问作者gopi.jtech

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:51:02