是否可以使用Flysystem CSV过滤 CSV 列的子集?
我知道您可以使用AbstractCsv::addFilter(callable $callback)
添加任意过滤器,但我认为您不会使用它来删除列。
是否可以使用Flysystem CSV过滤 CSV 列的子集?
我知道您可以使用AbstractCsv::addFilter(callable $callback)
添加任意过滤器,但我认为您不会使用它来删除列。
我通过获取要过滤掉的列位置数组来解决这个问题。然后,通过设置一个新的 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)
});