我有两个CSV文件。第一个包含两列(逗号分隔),第二个只包含一列。
我尝试将它们合并,并将第二个文件中的列作为最后一列移动到第一个文件中。
问题在于:当我运行脚本时,该列将转到第一个文件中,但它不会作为最后一列添加到文件中,而是完全替换了文件的内容。file_2.csv
1,13414214
6,13414214
13,13
3,33129
file_2.csv
个
title_1
title_2
title_3
title_4
组合后,file_1.csv
应如下所示
1,13414214,title_1
6,13414214,title_2
13,13,title_3
3,33129,title_4
这些文件具有相同的行号。
这是我目前掌握的情况
$file = fopen("file_1.csv","w");
$row = 1;
if (($handle = fopen("file_2.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000)) !== FALSE) {
$num = count($data);
$row++;
echo $data[0]. "\n";
fputcsv($file, $data);
}
}
fclose($handle);
fclose($file);
任何帮助都是感激不尽的。
UPDATE:这是答案的输出
1,13414214
,title_1
6,13414214
,title_2
13,13
,title_3
3,33129
,title_4
1条答案
按热度按时间33qvvth11#
为了简单起见,我不会尝试写入
file_1
,只需要读取file_1
和file_2
,然后写入file_3
即可。类似于:正如您所看到的,我将这些文件视为简单的文本文件,而不是CVS文件,因为我不需要对其中的数据做任何事情。
请注意,只有当
file_1.csv
和file_2.csv
包含相同数量的行时,这才会稍微起作用。哦,还有:对于非常大的文件,这可能不是最好的方法。那么逐行读取它们可能会更好,尽管会慢很多。