Php 如何检查是否在数组中找到了字符串的某些部分,但这是一个更智能的版本?

Php 如何检查是否在数组中找到了字符串的某些部分,但这是一个更智能的版本?,php,arrays,Php,Arrays,我正在编写一个simpe代码,用于查找数组中是否至少有一个字符串字,如下所示: 阵列 $the_array= array("first","second","third"); 代码 if(0 < count(array_intersect(explode(' ', $input_string), $the_array))) { echo 'found'; break; } else {} 或 你现在知道我的第二个问题了 或 在这里找到我的第一句和第二句 代码将回显找到的 我想要

我正在编写一个simpe代码,用于查找数组中是否至少有一个字符串字,如下所示:

阵列

$the_array= array("first","second","third");
代码

if(0 < count(array_intersect(explode(' ', $input_string), $the_array))) {
  echo 'found';
  break;
} else {}

你现在知道我的第二个问题了

在这里找到我的第一句和第二句

代码将回显找到的

我想要的解决方案是检查字符串,如
在这里找到我的第一句和第二句

针对下面这样的数组

$the_array=array(“第一秒”、“第三秒”)

并找到echo
。但是,由于字符串
第一个和第二个
之间存在单词,因此它不会执行此操作

有没有办法达到这样的目的?更“智能”的版本?

通过一些测试进行编辑;)


不确定这是否是最好的解决方案,但它可能是解决您问题的方法之一解决方案是:

  • 首先使用
    explode()
    函数拆分
    $input\u字符串
    字符串

    $string_components = explode(' ', $input_string);
    
  • 维护布尔值
    $标志
    ,以检查是否在数组中找到字符串的一部分

    $flag = false;
    
    if($flag){
        echo 'found';
    }else{
        echo 'not found';
    }
    
  • 循环遍历_数组
数组,并在每次迭代中检查数组中的搜索项(单个单词或多个单词)是否存在于原始字符串中

foreach($the_array as $search_val){
    $search_components = explode(" ", $search_val);
    if(count($search_components) == count(array_intersect($search_components, $string_components))){
        $flag = true;
        break;
    }
}
  • 最后,检查是否在数组中找到字符串的部分

    $flag = false;
    
    if($flag){
        echo 'found';
    }else{
        echo 'not found';
    }
    
  • 下面是一个例子:

    $the_array= array("first second","third");
    $input_string = "find my first and second sentence here";
    $string_components = explode(' ', $input_string);
    
    $flag = false;
    foreach($the_array as $search_val){
        $search_components = explode(" ", $search_val);
        if(count($search_components) == count(array_intersect($search_components, $string_components))){
            $flag = true;
            break;
        }
    }
    
    if($flag){
        echo 'found';
    }else{
        echo 'not found';
    }
    

    我认为您不需要
    array\u diff\u key
    ,但可能需要
    array\u diff