1

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

public function csvExtract() 
     {   


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

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

        fclose($file_handle);
    }

我需要的是:

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

这该怎么做。谁可以帮我这个事。

谢谢你。

4

3 回答 3

2

完成读取循环后:

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

或者干脆

array_pop($arraydata);
于 2013-09-27T11:17:09.857 回答
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;
}
于 2013-09-27T11:23:41.540 回答
0

快速肮脏的解决方案

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

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

于 2013-09-27T11:17:02.403 回答