Php 使用foreach从结果中删除重复的元素
我试图在数组中找到一个单词。所以我有两个数组Php 使用foreach从结果中删除重复的元素,php,arrays,Php,Arrays,我试图在数组中找到一个单词。所以我有两个数组 array1 = array ('This is my first array','This is my second element'); array2= array('This','element') 我想知道array1的引用,其中Array2中的单词匹配。以下代码工作正常,但它重复了引用号: foreach ($array1 as $key => $value) { foreach($array2 as $keys =&
array1 = array ('This is my first array','This is my second element');
array2= array('This','element')
我想知道array1的引用,其中Array2中的单词匹配。以下代码工作正常,但它重复了引用号:
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您可以使用array_unique来过滤重复
$temp_array = array();
if(strpos($value, $word) !== false) {
$temp_array[] = $key;
}
print implode(' ', array_unique($key));
特别是在这种情况下,中断;将执行您想要的操作:
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*/
}
}
}
有更好的方法吗?我想你可以将每个变量存储在一个数组中,然后用in_数组检查值是否出现在数组中,如果没有出现,则存储该值,但这比使用array_unique要复杂得多。你似乎在整数值上使用array_unique。是的,你完全正确。这是一个愚蠢的回答,因为他想做什么。在这里,被接受的break答案显然是正确的。