Flysystem / CSV过滤列的子集

时间:2016-03-16 14:03:18

标签: php csv flysystem

是否可以使用Flysystem CSV过滤CSV列的子集?

我知道您可以使用AbstractCsv::addFilter(callable $callback)添加任意过滤器,但我认为您不会使用它来删除列。

1 个答案:

答案 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)
});