我正在读取一个csv文件,更新csv文件并保存它。我想像在第二列之后那样重新排列新文件中的列,我想在第三列之前添加第十列,但当我尝试这样做时,它会用第十列替换第二列,而不是在第二行之后添加。以下是代码
<?php
$inFile='file.csv';
$outFile='file_updated.csv';
$read = fopen($inFile, 'r');
$write = fopen($outFile, 'w');
if ($write && $read) {
while (($data = fgetcsv($read)) !== FALSE) {
unset($data[1]);
$data[2]=$data[10];
fputcsv($write, $data);
}
}
fclose($write);
fclose($read);
?>
为什么不按照您希望的顺序创建一个数组,然后构建一个新的数据数组进行写入。
$order = array(1,2,10,3,4,5,6,7,8,9);
while (($data = fgetcsv($read)) !== FALSE) {
$new = array();
foreach($order as $index)
$new[] = $data[$index];
fputcsv($write, $new);
}