首页 » PHP » 正文

php中in_array()函数的性能测试

2015-9-25 ·  4,427 views  ·  0 replies 

今天写了一个小程序,需要从100万条数据中用数据库查询出来的数据去和某个数组的值进行匹配,很简单的一个程序,很自然的在匹配这一块就想到了使用in_array()这个函数,但是,100多万条数据跑了足足45分钟才全部筛选完,去掉mysql的查询时间,感觉这个函数效率还是有点低,上网查询之后发现确实有效率问题,随便看了几个搜索结果最后选择了使用isset()去匹配键值翻转之后的数组,测试了一下,效率提高了很多,抽时间把测试时间对比补上,现在先上主要代码:

[sourcecode language=”php”] $arr = array(2,3,4,6,11,13,14,15,16,17,18,19,20,21,22,23,25,27,29,30,31,32,35,40,42,43,44,45,51,47,48,49,50,55,52,54,57,59,60,62,65,66,68,70,71,72,73,74,75,76,78,79,80,81,82,85,86,87,89,90,94,98,100,165,104,105,106,107,111,112,119,120,121,124,125,126,130,131,132,115,127,135,133,167,146,147,148,159,160,161,162,163,170,176,179,189,190,191,215,203,207,208,209,211,230,236,237,242,244,246,251,253,254,256,257,259,260,261,263,264,265,267,270,275,276,278,280,281,282,283,285,286,287,289,290,291,292,310,311,316,336,337,338,339,356,374);
$newArr = array_flip($arr);
if(isset($newArr[$res[0]])){
//写入文件
fwrite($zai,$robots_dir."\n");
}else{
//写入文件
fwrite($buzai,$robots_dir."\n");
}
[/sourcecode]
«上一篇: :下一篇»
  1. 还没有任何评论,你来说两句吧

Leave a reply