2015-06-21 89 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); 
}