注意php in_array带来的低性能

<?php
$y="1800";
$x = array();
for($j=0;$j<2000;$j++){
        $x[]= "{$j}";
}
 
for($i=0;$i<3000;$i++){
        if(in_array($y,$x)){
                continue;
        }
}
?>

这段代码性能很低,原因是php引擎判断这个数组里的每一个元素是数字,但是实际上又是字符串,所以会把每个字符串转成数字之后再进行比对

解决方案:用in_array第三个参数设置true,进行类型比对就可以了

你可能感兴趣的:(注意php in_array带来的低性能)