我正在尝试从我的csv中删除不必要的列。我所做的是从当前的csv读取并使用fputcsv生成一个新的。但是,由于fputcsv在$data[21]
之前添加了额外的空白列,因此数据很混乱。以下是我的代码
$file_path = 'test.csv';
$file_output = 'new.csv';
if (file_exists($file_path) && filesize($file_path) > 0) {
if (false !== ($read_file = fopen($file_path, 'r'))) {
$output_file = fopen($file_output, 'w');
while (false !== ($data = fgetcsv($read_file))) {
$outputData = array($data[1], $data[6], $data[19], $data[20],
$data[21]);
fputcsv($output_file, $outputData);
}
}
fclose($read_file);
fclose($output_file);
}
答案 0 :(得分:0)
希望你在这里提到了正确的数组序列:
$outputData = array($data[1], $data[6], $data[19], $data[20],
$data[21]);
如果找不到/定义了数据索引,那么fputcsv()会在新的csv中添加额外的列。
答案 1 :(得分:0)
从不同的列数开始,在运行代码之前,似乎需要删除该文件。您可能希望在执行开始时unset
该文件。
if (file_exists($file_output)) {
unset($file_output);
}
// continue with getting and populating CSV