有许多方法可以确定字符是否包含数组。刚刚学习PHP的许多新手更喜欢使用循环来解决这个问题。对于小型网站来说,这个解决方案不会有任何大问题,但是对于性能来说,这种方法不是最好的方法。以下是三个方法,in_array()array_search比较三种方法之间的性能差异。


< PHP
运行时=新的运行时;
运行时>开始();
美元= k;
$ =阵列(A,B,C,D,E,F,G,H,我,J,);

*
($ i = 0;$ i < 100000;$ + +){
var_dump(in_array($,$));
}
* /

*
($ i = 0;$ i < 100000;$ + +){
foreach($ B键=美元价值){
如果($ = $ value){
回声真值;
继续;
}
}
}
* /

*
($ i = 0;$ i < 100000;$ + +){
array_search($,$);
}
* /

$运行时>停止();
echo $ _b;
执行时间。毫秒;

Runtime类{
VaR StartTime = 0美元;
VaR的停止时间= 0美元;
功能get_microtime(){
列表(USEC美元美元,SEC)=爆炸('',瞬时());
返回((浮动)$ USEC +(浮动)$秒);
}
函数start(){
美元-> StartTime =美元-> get_microtime();
}
函数停止(){
美元->停止时间=美元-> get_microtime();
}
函数花费(){
回轮(($这->美元->停止时间-开始时间)×1000, 1);
}
}
>


上述程序的执行时间如下图所示。

in_array()



Foreach



array_search()



可以看出,这三种方法的性能通常可以看到,array_search和in_array性能是相似的,每一个性能最差。