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

PHP读取TXT文件生成HTML表格 如何实现示例中的表格最后一行功能

实现表格末尾汇总行的解决方案

你需要先将所有数据读取完毕并完成统计计算,再统一输出表格内容,不要边读边输出。以下是可直接运行的修改后代码:

<?php
// 初始化存储和统计变量
$employees = [];
$totalSalary = 0;
$totalAge = 0;
$employeeCount = 0;

// 读取文件内容
$file = fopen('name.txt', "r");
while (!feof($file)) {
    $string = trim(fgets($file));
    // 跳过空行
    if (empty($string)) continue;
    
    $finalArray = [];
    $asArr = explode(',', $string);
    foreach ($asArr as $val) {
        $tmp = explode(':', $val);
        $key = trim($tmp[0]);
        $value = trim($tmp[1] ?? "");
        $finalArray[$key] = $value;
    }
    
    // 存储记录同时累加统计值
    $employees[] = $finalArray;
    $totalSalary += (int)$finalArray['Salary'];
    $totalAge += (int)$finalArray['age'];
    $employeeCount++;
}
fclose($file);

// 输出表格
echo '<table border="1">';
echo '<tr>
        <th>Name</th>
        <th>Salary</th>
        <th>Town</th>
        <th>Age</th>
      </tr>';

// 输出所有员工行
foreach ($employees as $emp) {
    echo '<tr>';
    echo '<td>'.$emp['name'].'</td>';
    echo '<td>'.$emp['Salary'].'</td>';
    echo '<td>'.$emp['town'].'</td>';
    echo '<td>'.$emp['age'].'</td>';
    echo '</tr>';
}

// 输出汇总行,可按需调整汇总项
$avgAge = round($totalAge / $employeeCount, 1);
echo '<tr>
        <td><b>汇总</b></td>
        <td><b>总薪资:'.$totalSalary.'</b></td>
        <td><b>平均年龄:'.$avgAge.'</b></td>
        <td><b>总人数:'.$employeeCount.'</b></td>
      </tr>';
echo "</table>";
?>

主要修改说明

  • 去掉了原代码中未定义$day变量的无效循环逻辑
  • 新增统计变量,读取文件时同步计算总薪资、总年龄、员工总数
  • 修复了原代码中border属性的语法错误
  • 所有数据读取完成后再输出表格,最后追加汇总行,你可以根据实际需要调整汇总行的展示内容和计算规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:09:01