gpt4 book ai didi

php - 如何在 PHP 中拆分 CSV 文件?

转载 作者:可可西里 更新时间:2023-11-01 13:54:58 25 4
gpt4 key购买 nike

我有一个很大的 CSV 文件。我想根据其中一个字段中的值将此文件分成单独的文件。

这就是我所做的。我使用 fgetcsv 将 CSV 转换为一个数组,并使用 in_array 检查内容并显示它是否包含数组中的字符串。

我将迭代地从另一个文本文件中获取比较字符串,以检查它是否包含在 csv 中。在这种情况下,我将其指定为“测试”。

代码如下:

if (($handle = fopen("test.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {

if(in_array("Testing", $data))
{
var_dump($data);
}
}

fclose($handle);
}

这是可行的,但现在我卡住了。如何将 $data 写入另一个 CSV 文件?或者有更好的方法吗?

最佳答案

其实很简单,如果只需要字符串就行,你甚至不需要fgetcsv。只是

$srcFile = new SplFileObject('test.csv');
$destFile = new SplFileObject('new.csv', 'w+');
foreach ($srcFile as $line) {
if (strpos($line, 'testing') !== FALSE) {
$destFile->fwrite($line);
}
}

这将创建两个文件对象。第一个保存源文件的内容。第二个为包含搜索字符串的行创建一个全新的文件。然后我们只是遍历每一行并检查搜索字符串是否存在。如果是,我们将其写入目标文件。

源文件不会以这种方式被触及。如果您想要一个文件包含搜索字符串而一个文件没有,只需创建第三个 SplFileObject 并在 if 中添加一个 else block ,然后将行写入该行。最后,删除源csv文件。

关于php - 如何在 PHP 中拆分 CSV 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16371524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com