Php 在两个数组中搜索单词
我试图搜索两个数组,并从数组2中返回数组1中匹配的匹配单词的索引。以下是阵列: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
$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不适用。