我有一个PHP脚本,用于解析来自我服务器的日志文件。目前,数据以数组形式写入并打印出来。之后,数据将保存在MySQL数据库中。
问题是,带有的数组永远不会大于1893,这只是数据的一小部分。将 memory_limit 从128M增加到512M后,该数字没有变化。 我完全相信,所有日志都已处理完毕。
数组是否有限制?
或者我的代码有问题。每个日志文件都被解析为一个数组( $ result ),该数组附加到最终数组( $ allResults )。
$allResults = $allResults+$result;
答案 0 :(得分:4)
除了内存不足外,PHP中的数组大小不应有限制。
我没有使用那种表示法来互相添加数组,我认为它不会像你想做的那样。你试过用以下代码编写代码吗?
$allResults = array_merge($allResults, $result);
您可能只是让脚本超时,具体取决于文件大小和服务器负载。
如果还没有,可以将其添加到页面顶部以查看完整错误:
ini_set("display_errors", "1");
error_reporting(E_ALL);
答案 1 :(得分:1)
在php数组中," +" operator不是array_merge,你可以参考" + operator in php"。在这里,我建议你使用array_merge:
$allResults = array_merge($allResults,$result);