php 高效率 数组查找,替换 in_array

今天在处理一个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;
}


相关阅读

添加新评论