忽略import csv上的第一个linet

时间:2018-01-17 07:39:28

标签: php mysql

我想忽略csv导入文件的第一行。

postgresql

2 个答案:

答案 0 :(得分:0)

在while循环之前,您可以使用fgetcsv函数。

$firstLine = fgetcsv($handle, 1000, ",");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
...

答案 1 :(得分:0)

喜欢这个

$row = -1;

 while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    ++$row;
    if($row == 0 ) continue; 
    ...

我们从-1开始,我们可以在任何事情之前增加行数。

另一种方法是创建一个标题数组:

$headers = fgetcsv($handle, 1000, ",");

 while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $row = array_combine($headers, $data);
    ..

然后你使用标题来引用数据,但是array_combine要求两个数组的长度相同,所以如果你有缺少的分隔符,它会导致很多麻烦。

所以如果你的前两行是

 first,middle,last
 John,J,Doe

然后上面的代码(带有array_combine)会给你

[
   'first' => John,
   'middle' => J,
   'last' => Doe
]

如果您使用了SpLFileObject类,则可以执行$obj->seek(1);

http://php.net/manual/en/class.splfileobject.php

我个人更喜欢第二个例子,使用SplFileObject类,但我讨厌程序代码......