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
相关产品推荐
相关产品推荐

