今天在处理一个1000多个元素的数组,用php in_array 计算,效率很差,循环100万次要几十秒。
网上搜了下,有用 array_flip 反转函数,判断数组key 的,通过100万次运算,效果不好,也是几十秒。
也有用 implode 拼接成字符串,然后 stripos 查出位置,返回是否包含,效率也是很差,几十秒。
下面是我自己写的方法,可替换PHP的 in_array ,效率提升上百倍:
function inArray(string $str,array $strArray){ foreach($strArray as $v){ if(str_replace($v,$str,'')=='' && strlen($v)==strlen($v)){ return true; } } return false; }
添加新评论