php foreach 嵌套循环大数组很慢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php foreach 嵌套循环大数组很慢?相关的知识,希望对你有一定的参考价值。

就这个循环花了10S,

我写的是用php导入excel 到mysql数据库,但是要验证code 不能重复,原本想用一个foreach循环selecte 一个一个的对比,一想到要插入1000条就要seletet 1000次这样写会很慢,结果我就用了上面这个方法 ,先用一条selecte 把数据库的数据全部查出来的到一个数组$gift,然后跟excle上传过来的数据 嵌套循环对比 ,一运行发现很慢 单嵌套循环就花了10s,我又改用第一种方法,结果才花了5S ,还快了一半。我是想问大神们,你们遇到这样的问题都是怎么处理的,有没有更好的方法?我觉得写程序这样事情经常会有

双层循环啊, 数量是 $gift * $fi的个数。 百万级别的。
简单的就是将excel中的数据导入的数据库中(可以是另外一个表),将验证码字段建索引。然后再排查重复的,纯sql就很快了。追问

在本地测是很快几乎可以忽略,但是到服务器就不一样了,我要导入1000条就要sql 1000次,这样总感觉有问题

追答

在数据库中建立索引后就很快了,不会真的执行1000次。
用卡迪尔积是效率最差的。

还有一个慢的原因可能是打开并读取excel慢。

参考技术A 没懂你问的意思追问

意识就是我要用phpexcel 导入数据到数据库,导入之前还要判断导入的数据不能跟数库的数据重复 ,有重复就不插入,重复的要返回给用户

以上是关于php foreach 嵌套循环大数组很慢?的主要内容,如果未能解决你的问题,请参考以下文章

PHP嵌套foreach()给出警告:为foreach()提供的参数无效

打印嵌套数组关联数组php

PHP未设置嵌套数组的部分

在同一个数组上使用嵌套的 foreach 循环

PHP和HTML:嵌套了HTML的嵌套foreach循环

PHP foreach 与嵌套数组?