PHP程序员站--PHP编程开发平台
 当前位置:主页 >> PHP基础 >> 每日技巧 >> 

php中查找数组中是否存在某个元素的方法性能测试

php中查找数组中是否存在某个元素的方法性能测试

来源:PHP程序员站  作者:PHP程序员站  发布时间:2011-06-12
php中查找一个元素是否在数组中,一共有上面三种做法: in_array array_key_exists array_search 对它们三个做了一个简单的测试: 在数组大小为10000的时候,查找一半数组大小的元素,即5000个 in_array consume time : 8.15333008766s array_key_exists consume time

php中查找一个元素是否在数组中,一共有上面三种做法:
in_array
array_key_exists
array_search
对它们三个做了一个简单的测试:
在数组大小为10000的时候,查找一半数组大小的元素,即5000个
in_array consume time : 8.15333008766s
array_key_exists consume time : 0.0237729549408s
array_search consume time : 8.17325806618s

在数组大小为1000的时候,查找一半数组大小的元素,即500个
in_array consume time : 0.061774969101s
array_key_exists consume time : 0.00311708450317s
array_search consume time : 0.0466430187225s

从这里来看,在数据量不大的时候,比如小于1000,查找用哪一种都行,都不会成为瓶颈;
当数据量比较大的时候,用array_key_exists比较合适。
当然这里array_key_exists占用的内存比较大,经测算
数组结构是: array(1, 2, 3, ..)和 array(1 => true, 2 => false, ..)
他们内存使用比值为1:2;
这个和内部实现有关系,实际上在php中第一种和第二种的数据结构类似,都是关联数组


延伸阅读:
JavaScript数组系列函数之push与pop函数用法
JavaScript数组系列函数之shift与unshift函数用法
JavaScript数组系列函数之slice函数用法
php函数直接返回数组的方法是最慢的
php数组应用技巧
php几个常用的去空、分组、调试数组函数
smarty里判断数组是否为空
PHP的常用数组整理
PHP 中利用数组降低程序的时间复杂度
php下将XML转换为数组的函数
PHP array_push 数组函数使用方法
php数组的合并、拆分、区别取值函数集
foreach遍历数组时使用引用的技巧
php数组array操作函数大全
PHP数组学习排序全接触
PHP array_flip() 交换数组中的键和值
php array数组删除重复元素的方法
php冒泡算法对数组排序
PHP数组常见使用方法
PHP遍历数组的几种方法
Tags: php   查找数组   元素   方法   性能测试  
最新文章
推荐阅读
月点击排行榜
PHP程序员站 Copyright © 2007-2010,PHPERZ.COM All Rights Reserved 粤ICP备07503606号