PHP读取CSV文件时,如何实现首条记录重复输出?
实现CSV读取时重复输出主分类的需求
嘿,懂了——你想在每个子分类前面都重复输出主分类Main Category对吧?咱们稍微改改PHP代码就能实现这个效果。
修改后的完整代码
<?php // 打开目标CSV文件 if (($handle = fopen("cat.csv", "r")) !== FALSE) { // 读取第一行,提取主分类内容(处理可能的空行或异常) $mainCategory = fgetcsv($handle, 1000, ",")[0] ?? ''; // 先输出开头的主分类(匹配你期望的第一行输出) if (!empty($mainCategory)) { echo $mainCategory . "<br>\n"; } // 循环读取所有子分类行 while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { // 确保当前行有有效内容再输出 if (isset($data[0]) && !empty($data[0])) { // 重复输出主分类 echo $mainCategory . "<br>\n"; // 输出当前子分类 echo $data[0] . "<br>\n"; } } // 关闭文件句柄,释放资源 fclose($handle); } ?>
核心修改思路
- 先单独读取CSV的第一行,把主分类内容存入
$mainCategory变量,这样后面可以随时调用重复输出; - 开头先输出一次主分类,对应你期望的输出开头;
- 每读取到一个子分类行,就先输出主分类,再输出子分类,完美实现你要的「主分类+子分类」重复结构;
- 加入了
?? ''和!empty()判断,避免空行或者异常数据导致的报错或多余输出。
最终输出效果
Main Category
Sub Category1
Main Category
Sub Category2
Main Category
Sub Category3
Main Category
Sub Category4
内容的提问来源于stack exchange,提问作者Ji't
相关产品推荐
相关产品推荐

