簡體   English   中英

CSV 聯賽不跳過空記錄

[英]CSV league not skipping empty records

我正在使用 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();

我可以自己修剪空記錄,也可以通過調用以下 function as $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(); 但它不會跳過空記錄。 我做錯什么了嗎?

我的文件看起來像: 在此處輸入圖像描述

我想跳過所有那些空記錄。

我對 League\CSV 有過簡單的體驗,並試圖從 csv 文件中捕獲數據。 package 代碼很大程度上取決於您安裝的版本。 所以第一步檢查英雄聯盟的版本。 我認為您應該閱讀有關 stream 過濾器的聯盟文檔頁面。 https://csv.thephpleague.com/9.0/connections/filters/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM