PHP - 内存不足而非常简单的循环,没有对象

时间:2014-10-03 11:40:41

标签: php out-of-memory

我有一个非常简单的循环的麻烦,因为我失去了记忆,我真的不知道为什么。 希望有人能够帮助我。 这是我的代码:

$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&&然后取消它,因为你可以看到,但即使它不起作用,如果文件太大我会失去记忆...... 说实话,我甚至不明白为什么记忆在循环中会增加....

1 个答案:

答案 0 :(得分:0)

是的,你总会耗尽内存,因为变量$full_list会一直增长,直到你的内存不足为止。

您需要直接在while周期内完成您的工作。

而使用array_slice($line, 0, 1)只需使用:$line[0]