【发布时间】:2020-07-20 13:51:45
【问题描述】:
我正在使用 PHPleague 解析 csv 并将其插入数据库。 https://csv.thephpleague.com/
我的代码如下:
$csv = Reader::createFromPath($path, 'r');
$csv->skipEmptyRecords();
$csv->setHeaderOffset(0);
$csv_header = $csv->getHeader();
$stmt = (new Statement())
->offset('0')
->limit('20')
;
$records = $stmt->process($csv);
foreach($records as $record){
print_r($record); // this show that it has processed empty records as well
}
exit();
我可以自己修剪空记录,也可以将以下函数调用为$records = $this->trimArray($records);
public function trimArray($arr)
{
$final = array();
foreach($arr as $k => $v)
{
if(array_filter($v)) {
$final[] = $v;
}
}
return $final;
}
但是,我希望在此之前对其进行修剪。而不是添加我自己的层来过滤它无论如何都在 csvleague 到skipemptyrecords。我试过$csv->skipEmptyRecords();,但它没有跳过空记录。我做错了什么吗?
我想跳过所有那些空记录。
【问题讨论】:
-
似乎是因为
comma它没有将它们视为空记录
标签: php thephpleague