繁体   English   中英

CSV 通过 PHP 重复第一个条目

[英]CSV via PHP repeat the first entry

我有以下代码

<?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

我希望这有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM