Php 在两个数组中搜索单词

Php 在两个数组中搜索单词,php,arrays,Php,Arrays,我试图搜索两个数组,并从数组2中返回数组1中匹配的匹配单词的索引。以下是阵列: $array1 = array('hello how are you', 'hello I am fine'); $array2 = array('hello','how'); 我正在尝试下面的代码,它返回0,1,这很好。但我只想返回0。我希望它只返回数组中两个单词所在的位置 foreach ($array1 as $reference => $array) { foreach($array2 as

我试图搜索两个数组,并从数组2中返回数组1中匹配的匹配单词的索引。以下是阵列:

$array1 = array('hello how are you', 'hello I am fine');
$array2 = array('hello','how');
我正在尝试下面的代码,它返回0,1,这很好。但我只想返回0。我希望它只返回数组中两个单词所在的位置

 foreach ($array1 as $reference => $array) {
    foreach($array2 as $key => $word) {
       if(strpos($array, $word) !== false) { 
           echo $reference, PHP_EOL;
           break;
       }    
    }    
 }

您需要跟踪检查的
$array2
中的每个实体与
$array1
中的每个实体,然后在内部循环后进行比较,以确定
$array2
中的所有元素是否都存在于
$array1
中。下面是一个例子:

foreach($array1 as $reference => $array) {
    $contains = 0;
    foreach($array2 as $key => $word) {
        if(strpos($array, $word) !== false) {
            $contains++;
        } else {
            // for performance reasons, e.g. if you have a large array,
            // you should break the loop here if the word isn't in the
            // original array
            break;
        }
    }
    if($contains == count($array2)) {
        // $array contains all words from $array2
        echo $reference . PHP_EOL;
    } else {
        // $array doesn't contain all the words     
    }
}

尝试数组_diff()了吗<代码>数组_diff不适用。