【发布时间】:2015-06-03 12:43:01
【问题描述】:
我正在尝试从我的 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);
}
【问题讨论】:
-
所有引用的数组位置都存在吗? var_dump 以确保 100% 确定
-
是的,我做到了...写入 csv 之前的数组位置是正确的。我手动将其 var_dump 出来并检查。谢谢。
-
您能否发布一个正在输出的 CSV 数据示例?
-
"Gaash Lighting Ltd",G2,"Kibbutz Gaash",,,""
-
哎呀...你的 PHP 显示放置 5 列,但输出是 8 列。您是否确保在运行之间删除了输出文件 (
new.csv)?