php - 通过 PHP 的 CSV 重复第一个条目
问题描述
我有以下代码
<?php
if (($handle = fopen("cat.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
if (isset($data[0])) {
echo $data[0] . "<br>\n";
}
}
fclose($handle);
}
?>
它会打印 CSV 文件中的类别,如下所示:
Main Category
Sub Category1
Sub Category2
Sub Category3
Sub Category4
我需要实现的是让主类别再添加一次代码。我该如何管理它?
Main Category Sub Category1
Main Category Sub Category2
Main Category Sub Category3
Main Category Sub Category4
在过去的几个小时里,我一直在检查每一个细节,但我遗漏了一些东西。任何帮助表示赞赏
解决方案
假设您的 cat.csv 文件布局如下:
Main Category,Sub Category1,Sub Category2,Sub Category3,Sub Category4
下面的代码应该可以解决问题。如果将每一行的主要类别设为第一列,它将正确打印出来。
<?php
// Open your CSV File.
$FileHandle = FOpen("cat.csv", "r");
// Initiate a counter to count the ROWS of the file.
$RowCtr = 1;
// Create an empty variable to hold your prefix ("Main Category").
$Prefix = "";
// Verify the file is open.
If ($FileHandle !== FALSE) {
// Loop through the CSV file.
While (($Data = FGetCSV($FileHandle, 1000, ",")) !== FALSE) {
// Count the number of Columns.
$ColCtr = COUNT($Data);
// Add another row the ROW counter.
$RowCtr++;
// Loop through each column.
For ($c = 0; $c < $ColCtr; $c++) {
// If first iteration, save the value to the prefix for later use.
If ($c == 0) {
$Prefix = $Data[$c];
// Echo $Data[$c] . "<br />"; // Uncomment this line to print the Main Category by itself first.
} Else {
// Echo out the prefix with the new values.
if (!Empty($Data[$c])) {
Echo $Prefix . " " . $Data[$c] . "<br />";
}
}
}
}
// Close the file.
FClose($FileHandle);
} Else {
// Handle case if file cannot be opened.
}
?>
这将打印出来
Main Category Sub Category1
Main Category Sub Category2
Main Category Sub Category3
Main Category Sub Category4
如果您的 CSV 如下所示
Main Category,Sub Category1,Sub Category2,Sub Category3,Sub Category4
Main Category2,Sub Category5,Sub Category6,Sub Category7,Sub Category8
它会打印出来
Main Category Sub Category1
Main Category Sub Category2
Main Category Sub Category3
Main Category Sub Category4
Main Category2 Sub Category5
Main Category2 Sub Category6
Main Category2 Sub Category7
Main Category2 Sub Category8
我希望这有帮助!
推荐阅读
- python - 使用 base 2 python 将十六进制转换为十六进制
- ionic-framework - Ionic API 请求未完成 - 保持待处理状态
- c# - 如何使用已经在 FlowLayoutPanel 内的面板内的控件?
- mysql - 更改订阅 bbpress 论坛的每个 wordpress 用户的电子邮件
- sql - 计算两个日期之间的天数,不包括周末
- swift - 在核心数据中存储经常更改的图像数组的最有效方法
- c - C套接字 - 客户端在服务器端关闭文件描述符后继续读取
- typescript - Typescript 通用接口参数赋值
- html - 渐变在 Microsoft Edge 中未正确显示
- c# - C# 提取/解压缩 .EXE 文件