PHP 中的数组大小限制

2022-08-30 19:04:45

我想知道php 5中的数组是否有大小限制?我写了一个php脚本来更改文件中每行的最后一个元素。打印出修改后文件的内容,当我在一个小文件上运行脚本时(即每行包含4个值),它将起作用。当我在一个更大的文件(如60000行,每行包含90个值)上运行它时,它不会改变原始文件的一点,但脚本在运行时没有抛出任何异常消息。这是什么问题?


答案 1

您的内存可能不足,因为您的数组大小(理论上)仅受分配给脚本的内存量的限制。放入脚本的开头,将内存限制设置为 1 GB。您可能需要将此值提高得更高才能获得最佳效果。ini_set('memory_limit', '1024M');


答案 2

正如 manyxcxi 所说,您可能需要增加memory_limit。有时,您还可以通过使用unset($var)取消设置大型变量来减少内存使用量。仅当变量保持在远远超过其最后一个使用点的范围内时,才需要这样做。

您现在是否有机会读取整个文件,对其进行转换,然后写入新文件?如果是这样,您可以通过在读取一小部分的循环中工作来减少内存使用量,对其进行处理并将其写出并重复,直到到达文件末尾。但前提是转换算法不需要整个文件来转换一小部分。