У меня есть некоторые проблемы с очень простым циклом, потому что у меня не хватает памяти, и я действительно не знаю, почему.
Надеюсь, кто-нибудь сможет мне помочь.
Вот мой код:
$full_list = array();
$fp = fopen($file_name, 'r');
while (($line = fgetcsv($fp, 0, $delimiter)) !== FALSE)
{
$val = array_slice($line, 0, 1);
$line = NULL;
unset($line);
if (in_array($val, $full_list) === FALSE)
$full_list[] = $val;
$val = NULL;
unset($val);
}
fclose($fp);
Я пробовал $ line = NULL && затем сбросьте его, как вы можете видеть, но даже если это так, он не работает, если файл слишком большой, мне не хватит памяти …
Если честно, я даже не понимаю, почему память даже увеличивается во время цикла ….
да, вам всегда будет не хватать памяти, потому что переменная $full_list
всегда будет расти, пока не выйдет из памяти.
вам нужно делать свои вещи прямо в while
цикл.
и вместо этого использовать array_slice($line, 0, 1)
просто используйте: $line[0]
Других решений пока нет …