如何使用fgetcsv函数从csv文件中跳过特定行

时间:2013-09-27 11:11:13

标签: php csv fgetcsv

我有读取数组中csv文件的函数。我的代码是

public function csvExtract() 
     {   


       $file_handle = fopen(text.csv, 'r');

       while (!feof($file_handle) )
        {
            arraydata[] = fgetcsv($file_handle, 1024);
        }

        fclose($file_handle);
    }

我需要的是:

我的文件包含我要跳过的行FINAL TOTAL的最后一行。

如何做到这一点。任何人都可以帮助我。

谢谢。

3 个答案:

答案 0 :(得分:2)

完成阅读循环后:

end($arraydata);
$key = key($arraydata);
unset($arraydata[$key]);

或只是

array_pop($arraydata);

答案 1 :(得分:1)

您可以使用continue语句跳过PHP中的任何循环。这将只跳过循环的 1 迭代,与break语句相同,这将完全结束循环。
使用它,您可以形成循环应该跳过的条件:

while (!feof($file_handle)) {
    $csv = fgetcsv($file_handle, 1024);
    // check your condition and skip if needed...
    if (in_array('FINAL TOTAL', $csv)) continue;
    $data[] = $csv;
}

答案 2 :(得分:0)

快速解决方案

 ...
 fclose($file_handle);
 if($arraydata) {
    unset($arraydata[count($arraydata)-1)]);
 }

只需“删除”导入的最后一行