是否可以使用Flysystem CSV过滤CSV列的子集?
我知道您可以使用AbstractCsv::addFilter(callable $callback)
添加任意过滤器,但我认为您不会使用它来删除列。
答案 0 :(得分:0)
我通过获取我想要过滤的列位置数组来解决这个问题。然后,通过设置一个新的CSV对象来写入例如
$new = Writer::createFromFileObject(new \SplTempFileObject);
使用CSV进行读取,我使用each
方法迭代其行,使用之前构建的列索引构建新行并插入新CSV。请记住return true;
方法中的each
,否则它不会重复。
$csv = $csv->newReader();
$csv->setOffset(1);
$csv->each(function ($row) use ($new) {
... do stuff to alter the row ...
$new->insertOne($alteredRow)
});