-3

我正在尝试在 PHP 中将几个 CSV 文件合并在一起。由于这里的线程(组合 2 个 CSV 文件),我已经使用 PHP 将它们合并为整个文件,但是我希望通过单独的行将文件合并在一起。

我想从 中读取第 1CSV 1行,从 中读取第 1 行CSV 2,依此类推,然后继续line 2, 3, etc.- 在每个循环的数组中的文件之间循环。我在 PHP 中解析文件的工作不多,所以我不确定从哪里开始完成这项工作。

如果上述内容不清楚,这就是我要完成的工作:

CSV1 - 第 1 行

CSV2 - 第 1 行

CSV3 - 第 1 行

CSV1 - 第 2 行

CSV2 - 第 2 行

CSV3 - 第 2 行

CSV1 - 第 3 行

CSV2 - 第 3 行

CSV3 - 第 3 行

.... 并继续循环,直到 CSV 文件中没有任何行。

4

1 回答 1

2

试试这个 php 代码(获取带有 的行file())。:

<?php
$csv1 = file('csv1.csv', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$csv2 = file('csv2.csv', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$csv3 = file('csv3.csv', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$lines = max(count($csv1), count($csv2), count($csv3));
$finalcsv = array();
for($i=0; $i<$lines; $i++) {
  if(isset($csv1[$i])) $finalcsv[] = $csv1[$i];
  if(isset($csv2[$i])) $finalcsv[] = $csv2[$i];
  if(isset($csv3[$i])) $finalcsv[] = $csv3[$i];
}

file_put_contents('final_data.csv', implode(PHP_EOL, $finalcsv));
于 2013-06-22T15:09:20.183 回答