检查是否有任何数组值包含字符串 - strpos


Check if any array value contains a string - strpos

为了检查字符串中是否存在子字符串:

if (strpos($haystack,$needle)!==false) {...}

但是需要检查是否有任何数组值包含字符串。

例如:检查"oran"是否包含在任何值中$arr

$arr=array('orange1','orange2','orange3')

总是可以使用strpos对每个数组值进行操作和分析。

但是有没有一个优雅而不错的选择?

这个怎么样?

if(strpos(implode(' ', $arr), 'oran') !== false){...}

您需要空格分隔符,以免意外执行以下操作:

$arr = array('for', 'antlr');  // implode would make 'forantlr', which contains 'oran'
foreach ($arr as $a) {
   if (strpos($a,'oran') !== false) { ... }
}

我知道无论如何我们都在想这个。/线程。