使用foreach从结果中删除重复的元素

时间:2014-02-14 18:38:35

标签: php arrays

我想在数组中找到一个单词。所以我有两个数组

 array1 = array ('This is my first array','This is my second element');
 array2= array('This','element')

我想知道array1的引用,其中数组2中的单词匹配。以下代码工作正常,但它重复引用号:

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

结果为“0 0 1 1”,而我想要“0 1”

2 个答案:

答案 0 :(得分:1)

特别针对这种情况,break;会做你想做的事情:

foreach ($array1 as $key => $value) {
    foreach($array2 as $keys => $word) {
        if(strpos($value, $word) !== false) {
            echo $key, PHP_EOL;
            break; /*Moves on to next array item in array1 instead of looking for
                     more matches in array2*/
        }
    } 
}

答案 1 :(得分:-2)

您可以使用array_unique来过滤欺骗。

$temp_array = array();

if(strpos($value, $word) !== false) {
    $temp_array[] = $key;
}

print implode(' ', array_unique($key));