最近开发功能时,写了一个foreach 嵌套两个foreach的代码
主要是想把所有数据分组整合后,直接运行一次insert
在测试时,本地运行正常,新增提交成功大概要3秒,修改成功要操作2次;
但是,线上测试时,如果提交数据较少,就会运行成功;但是如果全选数据量就会报错;
一直以为是服务器配置的问题,在代码里面加过
set_time_limit(0);
ini_set('memory_limit','1024M');
但是线上还是不行,后来想到会不会是foreach嵌套太多,于是将foreach拆开后,删除多余临时数组,线上新增跟修改就提交运行正常了;
foreach 拆开前:
foreach 拆开后:
关于大数组foreach嵌套优化,可参考:https://www.cnblogs.com/pyspang/p/12035177.html
==============================================================================
隔天又又又又又又不行了,什么鬼线上环境!!!!!emmm!!!!!!
还是决定对配置下手!!!!
在PHP.ini中设置 max_input_vars = 5000
又又又又又又好了!