我需要在循环内更新数组中的值.通常这样可以正常工作,但是关于这个循环的一些事情会导致内存最大化.
while ($watering_window['total_run_time'] > $water_window_total)
{
foreach ($master_schedule as &$_ms)
{
$current_soak_time = $_ms['between_starts'] - $_ms['total_run_time'];
if ($current_soak_time > 0)
{
$new_soak_time = ceil($current_soak_time * 0.9);
$_ms['between_starts'] = $_ms['total_run_time'] + $new_soak_time;
$watering_window['total_run_time'] -= $current_soak_time - $new_soak_time;
}
}
}
写入$_ms [‘between_starts’](现有密钥)的问题导致了内存问题.如果我改变它来写一个新键(比如$_ms [‘between_starts_new’],没有内存问题.我也尝试写一个常量值(而不是一些东西)并且它仍然超时.
解决方法:
你需要增加memory_limit.
在php脚本的顶部添加以下内容:
ini_set('memory_limit','256M');
...
根据您的需要调整值.
标签:php,arrays,loops
来源: https://codeday.me/bug/20190608/1200597.html