PHP不使用循环判断数组中的元素是否包含在一串字符串中

更新时间:2018-08-16 16:29:33点击:52

今天,老同事IM上问了我一个PHP的问题,描述如下:
PHP判断一串字符串中是否包含数组中的某个元素,不用for,还有什么方法?代码如下:

$val = "保暖羽绒服大甩价";
$arr = array("羽绒服","毛呢大衣","毛衣");12

我当时第一想法是,使用array_map可以伪解决,很快就发过去了,但是他 给我的回复是这个也算是循环。。。后来我说想想有没有什么更好的办法,思考片刻后,想起了之前看过的一个 判断数组里是否有重复元素的代码片段,代码如下:

if (count($array) != count(array_unique($array))) {   
   echo '有重复';  
}123

然后得出了下面的代码:

$val = "保暖羽绒服大甩价";
$arr = array("羽绒服","毛呢大衣","毛衣");
echo (strlen($val) === strlen(str_replace($arr, '', $val))) ? '不包含' : '包含';123

代码很简单,大概思路就是把数组里的元素作为替换元素,去替换 要判断的字符串,然后计算 替换前原始字符串的长度 和 替换后字符串的长度,做对比即可达到我们要的效果!



文章关键词  PHP不使用循环判断数组中的元素是否包含在一串字符串中

注:本文转载自林州建站工作室,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除。


0.0308s