在没有多个运算符的情况下,使用stristr匹配SINGLE if条件中数组中的任何值

Joh*_*ohn 3 php arrays string if-statement

我很有能力编码PHP虽然我遇到了一种情况,我想知道是否可以使用stristr匹配SINGLE if条件中的数组中的任何值.我不需要/想要一个类,一个专用函数或任何超复杂的东西,我也不做任何复杂的事情,比如尝试匹配特殊字符,我只是觉得我可能在php.net上错过了一些有用的东西.

一般概念......

if (stristr($search_this,$array_with_values)) {echo 'a match was found';}
Run Code Online (Sandbox Code Playgroud)

...或者相当于什么(即使这不起作用)......

if (stristr($search_this,array('string1','string2'))) {echo 'a match was found';}
Run Code Online (Sandbox Code Playgroud)

...我可能会尝试在常规句子/字符串中找到字符串'apple','orange','banana'.

我可以在if条件之外定义数组.

我的主要目标是简单地没有多个if条件或使用多个运算符,如&&或||.

所以我不想要多个|| 如果可能,这样的运营商......

if (
stristr($search_this_string,'string1') || 
stristr($search_this_string,'string2') || 
stristr($search_this_string,'string3')
) {echo 'a match was found';}
Run Code Online (Sandbox Code Playgroud)

我不介意在if条件之前/之外使用数组,尽管我希望能够在单个if条件中适应其他所有内容.

Jon*_*Jon 7

正则表达式绝对是最好的.很短,我期望比任何东西都快,甚至远远接近长度.

if(preg_match('/'.implode('|', array_map('preg_quote', $needles)).'/i', $haystack)) {
    echo 'Match found!';
}
Run Code Online (Sandbox Code Playgroud)

编辑:关于"stristr"出现在问题标题上......关注问题,而不是解决方案.


小智 5

我怀疑这是高性能的,但是如果您正在寻找一个外观简单的单线:

if( str_ireplace(array('string1', 'string2'), '', $str) != $str )
{
  echo 'a match was found';
}
Run Code Online (Sandbox Code Playgroud)