猿问

如何使用 php 甚至 javascript 将新的 csv 文件作为新列合并到现有的 csv

我有一些包含 1 列和多行数据的 csv 文件,如下所示:

file1.csv:
星期一
亚当
·安德鲁

file2.csv:
周二
James
Sally
Sean
Ben
Sid

file3.csv:
星期三
康尼·
史蒂夫·
艾伯特

如何从这 3 个文件中获取数据并将它们作为单独的列放在新的 csv 文件中?我正在使用 php 和 javasript,如果其中任何一个可以完成这项工作,那就太好了。


白衣染霜花
浏览 134回答 2
2回答

白猪掌柜的

我设法让它根据你上面的部分代码工作。首先,我需要将每个文件中的数据放入一个简单的数组中,因为它们每个只有 1 列。然后我计算每个文件中的行数,并像您所做的那样获得最大计数。最后,我将每个文件中的数据放入 for 循环中,如下所示:for ($row_index = 0; $row_index < $row_count; $row_index++) {$row = array($mondaycol[$row_index], $tuesdaycol[$row_index] , $wednesdaycol[$row_index], $thursdaycol[$row_index], $fridaycol[$row_index], $saturdaycol[$row_index], $sundaycol[$row_index]);fputcsv($outFile, $row);}

ibeautiful

可以使用File API在 JS 端执行此操作。绝对有可能在 PHP 方面做到这一点。这是有关处理文件上传的相关文档。要读取 CSV 文件,请查看fgetcsv(). 使用它来将每个文件的内容放入一个数组中。在这一点上,你应该能够做这样的事情:<?php// $file1 = ...// $file2 = ...// $file3 = ...$rows = [];$row_count = max(count($file1), count($file2), count($file3));for ($row_index = 0; $row_index < $row_count; $row_index++) {    $row = [];    $row[0] = $file1[$row_index] ?? '';    $row[1] = $file2[$row_index] ?? '';    $row[2] = $file3[$row_index] ?? '';    $rows[] = $row;}一旦你得到了你想要写入新文件的数据到它自己的数组中(即$rows在上面的例子中),你就可以使用fputcsv()写入它。
随时随地看视频慕课网APP
我要回答