Я использую 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](https://i.stack.imgur.com/ZX8ww.png)
Я хочу пропустить все эти пустые записи.