PHP函数in_array、array_key_exists和isset效率分析

自己不才编写了一个函数,粗略的比较一下三个函数应用上的效率:



table {
	border:1px solid #000000;
}
td{
	border:1px solid red;
}


方法名称 方法耗时
in_array $time1
array_key_exists $time2
isset $time3
str; echo $str; }
粗略的测试:

当$n=1时,一次测试结果为:

方法名称 方法耗时
in_array 2.599999999997E-5
array_key_exists 1.2999999999985E-5
isset 1.0999999999983E-5

仅以此,可见此时效率:isset > array_key_exists > in_array 


当$n=10时,一次测试结果为:

方法名称 方法耗时
in_array 0.00013399999999997
array_key_exists 8.1999999999915E-5
isset 6.6999999999928E-5

仅以此,可见此时效率:isset > array_key_exists > in_array ,而且in_array效率明显低于另外两个


当$n=100时,一次测试结果为:

方法名称 方法耗时
in_array 0.0014380000000001
array_key_exists 0.00078099999999992
isset 0.00068699999999999

仅以此,可见此时效率:isset > array_key_exists > in_array 

下面是当$n=300的结果:

方法名称 方法耗时
in_array 0.003829
array_key_exists 0.002758
isset 0.001982

由此可见:isset的效率最高,在数据量很大时isset会明显快于array_key_exists,在数据很小时isset与array_key_exists效率没有太多的差别;而in_array效率最低;

我这里查询的键都是存在的,实际情况会更加复杂,但总体而言isset应该是效率最高的一个。至于到底用哪个函数还要看实际的需要。


你可能感兴趣的:(PHP,建站)