【问题标题】:Saving specific columns of CSV to another CSV file in PHP将 CSV 的特定列保存到 PHP 中的另一个 CSV 文件
【发布时间】:2018-09-04 01:30:26
【问题描述】:

因此尝试读取 csv 文件并从文件中提取详细信息,并希望将 csv 的特定列存储到另一个 csv 文件中。

我已设法提取输入 csv 文件的特定列,但不确定如何将这些提取的列写入另一个 csv 文件。

这是我的部分工作:

$row = 1;
if (($handle = fopen("testtable.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        $row++;
        echo $data[0] . "\n" . $data[1] . "<br />\n";

    }
    $file = fopen("editedTable.csv","w");
    foreach ( $data as $line) {             //working on this part of the code
        fputcsv($file, explode(',',$line));
    }
    fclose($handle);
}

当我试图找出逻辑时,foreach 循环中显然存在错误。

提取出来的数据基本上是第一列和第二列(data[0],data[1])。只需要这个来写入另一个 CSV 文件。输入 csv 只是一个逗号分隔的文件,有 5 列。知道如何修改 foreach 循环并使用 fputcsv 方法吗?

谢谢

【问题讨论】:

    标签: php csv


    【解决方案1】:

    fputcsv 在第二个参数上接受一个数组。

    我想这就是你要找的:

    <?php
    $file = fopen("editedTable.csv","w");
    $row = 1;
    if (($handle = fopen("testtable.csv", "r")) !== FALSE) {
        while (($data = fgetcsv($handle, 1000)) !== FALSE) {
            $num = count($data);
            $row++;
            echo $data[0] . "\n" . $data[1] . "<br />\n";
            fputcsv($file, [$data[0], $data[1]]);
        }
    }
    fclose($handle);
    fclose($file);
    

    【讨论】:

      【解决方案2】:

      因为您将 fputs 放在 $data 初始循环之外,所以您只捕获了一行,这是修改后的代码。

           $row = 1;
           $file = fopen("editedTable.csv","w");
      
          if (($handle = fopen("testtable.csv", "r")) !== FALSE) {
              while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
                  $num = count($data);
                  $row++;
                  echo $data[0] . "\n" . $data[1] . "<br />\n";
                  $line = $data[0].", ".$data[1];
                  $line .=  "\n";
                  fputs($file, $line);
             }
            fclose($handle);
         }
         fclose($file);
      

      【讨论】:

        猜你喜欢
        • 2016-06-07
        • 1970-01-01
        • 2018-07-18
        • 2019-01-17
        • 1970-01-01
        • 2020-05-05
        • 1970-01-01
        • 1970-01-01
        • 2021-02-11
        相关资源
        最近更新 更多