我想忽略csv导入文件的第一行。
postgresql
答案 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类,但我讨厌程序代码......