仍在努力使用PHP和CSV文件操作。我会尝试正确地问这个,以便我能得到一些帮助。
我有一个大约4000行/行的CSV文件,我编写了这段代码来创建整个CSV的数组,并将CSV文件的最后一行拉出来在我的脚本中使用。该代码适用于所有这些机智的成功。
// CREATE ASSOCIATIVE ARRAY FROM LAST ROW OF CSV FILE
$csv = array();
if (FALSE !== $handle = fopen("Alabama-TEST.csv", "r"))
{
while (FALSE !== $row = fgetcsv($handle))
{
$csv[] = $row;
}
}
$new_csv = array();
foreach ($csv as $row)
{
$new_row = array();
for ($i = 0, $n = count($csv[0]); $i < $n; ++$i)
{
$new_row[$csv[0][$i]] = $row[$i];
}
$new_csv[] = $new_row;
}
变量$ new_row是CSV中的最后一行,我可以正常使用数据。但是当脚本运行完毕后,我想删除名为$ new_row的最后一行。
以下是顶视图中我的CSV文件示例;
CITY ADDRESS STATE NAME
Birmingham 123 Park St. Alabama Franky
所以我只想删除最后一行并将标题保持在顶部,以便下次运行脚本。我已经尝试了3天,试图弄清楚这一点,所以我希望有些善意的人知道他们会做些什么可以帮助。
以下是我尝试删除最后一行的代码;
$inp = file('Alabama-TEST.csv');
$out = fopen('Alabama-TEST.csv','w');
or ($i=0;$i<count($inp)-1;$i++)
fwrite($out,$inp[$i]);
fclose($out);
由于我使用大约4000行的大文件,有没有办法在不使用太多内存的情况下执行此操作?