我有一个非常简单的循环的麻烦,因为我失去了记忆,我真的不知道为什么。 希望有人能够帮助我。 这是我的代码:
$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&&然后取消它,因为你可以看到,但即使它不起作用,如果文件太大我会失去记忆...... 说实话,我甚至不明白为什么记忆在循环中会增加....
答案 0 :(得分:0)
是的,你总会耗尽内存,因为变量$full_list
会一直增长,直到你的内存不足为止。
您需要直接在while
周期内完成您的工作。
而使用array_slice($line, 0, 1)
只需使用:$line[0]