2015-06-21 76 views
-1

我有以下代码,如果$array1中只有1个值,但是如果$array1中有2个或更多值,它将返回一个空数组。我需要它匹配$array1的所有值。PHP Loops&array_filter

$array1Imploded = implode(", ", $array1); 
foreach ($array1 as $m) { 
    $m = array_filter($array2, function($var) use ($array1Imploded) { return preg_match("#\b$array1Imploded\b#i", $var); }); 
} 
print_r($m); 

我在做什么错误?我猜测它与$array1Imploded中的逗号和空格有关,但我不确定如何解决它们。

+2

您可能想要查看'array_filter'函数的作用。 – Anonymous

+0

你想达到什么目的?您正在对'$ array2'执行过滤操作,但是您的代码并未显示最初包含的“$ array2”。 – light

+0

'$ array2'在脚本的前面定义。它包含一些国家名称以及一些与这些国家有关的其他数据。 – WiLDRAGoN

回答

0

需要array_intersect而不是array_filter

foreach ($array1 as $m) { 
    $m = array_intersect($array2, $array1); 
}