使用PHP从CSV文件中有条件地删除行

使用PHP从CSV文件中有条件地删除行,php,csv,Php,Csv,我正在从doubleclick为广告商下载csv报告。我的客户端需要将csv保存到数据库表中。在将csv保存到数据库之前,我需要从顶部删除几行,从底部删除总计行。PHP中有没有什么函数可以用来删除csv文件中指定的行?没有专门的函数,但有几种方法可以实现 如果您有足够的RAM一次将整个文件保存在内存中,则可以使用以下命令将文件转换为数组: $data=explode("\n",file_get_contents("path/to/csv_file"); 然后,要去掉底部的总计,只需使用以下命令

我正在从doubleclick为广告商下载csv报告。我的客户端需要将csv保存到数据库表中。在将csv保存到数据库之前,我需要从顶部删除几行,从底部删除总计行。PHP中有没有什么函数可以用来删除csv文件中指定的行?

没有专门的函数,但有几种方法可以实现

如果您有足够的RAM一次将整个文件保存在内存中,则可以使用以下命令将文件转换为数组:

$data=explode("\n",file_get_contents("path/to/csv_file");
然后,要去掉底部的总计,只需使用以下命令取消最后一行的设置:

unset($data[sizeof($data)-1);
其工作方式是对数组中的每一行进行编号,但从零开始。“
sizeof
”将是行数,但由于我们开始以零开始计数,它将是一个太多的行数

要从顶部删除一些行,可以

unset($data[0]); and unset($data[1]);
然后使用
foreach()
函数循环行并插入数据库:

foreach($data as $line){
/// parse your $line 
/// Insert row into database
}

你认为有什么方法可以让你的问题变得不那么具体吗?可能重复的可能重复的可能重复的可能重复的,更不用说fgetcsv(),或者如果文件太大,内存不足