Лига CSV не пропускает пустые записи - PullRequest
3 голосов
/ 08 апреля 2020

Я использую 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();, но он не пропускает пустые записи. Я что-то не так делаю?

Мой файл выглядит так: enter image description here

Я хочу пропустить все эти пустые записи.

...