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


PHP - Out of Memory while very simple loop, w/o object

对于一个非常简单的循环,我遇到了一些麻烦,因为内存不足,我真的不知道为什么。希望有人能帮助我。这是我的代码:

$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]