3

我正在使用 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();但它没有跳过空记录。我做错什么了吗?

我的文件看起来像: 在此处输入图像描述

我想跳过所有那些空记录。

4

1 回答 1

0

我对 League\CSV 有过简单的体验,并尝试从 csv 文件中捕获数据。软件包代码很大程度上取决于您安装的版本。所以第一步检查英雄联盟的版本。我认为您应该阅读有关流过滤器的 League 文档页面。 https://csv.thephpleague.com/9.0/connections/filters/

于 2022-01-07T07:00:34.613 回答