在php中重新安排csv文件中的列

时间:2015-04-01 16:36:08

标签: php csv

我正在读取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);
?>

1 个答案:

答案 0 :(得分:1)

为什么不制作一个你想要它的顺序的数组,然后构建一个新的数据数组来写。

$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);
}