все еще борюсь с манипулированием файлами PHP и CSV. Я постараюсь задать этот вопрос правильно, чтобы получить помощь.
У меня есть CSV-файл, содержащий около 4000 строк/строк, и я написал этот код, чтобы создать массив всего 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 строк, есть ли способ сделать это, не используя слишком много памяти?