PHP循环&;阵列滤波器

PHP循环&;阵列滤波器,php,Php,我有下面的代码,如果$array1中只有一个值,它可以正常工作,但是如果$array1中有两个或更多值,它将返回一个空数组。我需要它匹配$array1中的所有值 $array1Imploded = implode(", ", $array1); foreach ($array1 as $m) { $m = array_filter($array2, function($var) use ($array1Imploded) { return preg_match("#\b$array1Im

我有下面的代码,如果
$array1
中只有一个值,它可以正常工作,但是如果
$array1
中有两个或更多值,它将返回一个空数组。我需要它匹配
$array1
中的所有值

$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);

请问我做错了什么?我猜这与
$array1inboded
中的逗号和空格有关,但我真的不知道如何解决它们。

需要
数组_intersect
而不是
数组_filter

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

您可能想查看
array\u filter
函数的功能。您想实现什么?您正在对
$array2
执行筛选操作,但您的代码没有显示
$array2
最初包含的内容。
$array2
在脚本的前面定义。它包含了一系列的国家名称以及一些其他与这些国家相关的数据。用户输入的一个或多个国家/地区名称进入
$array1
array\u filter
仅返回
$array2
中包含
$array1
中国家名称的元素。