我想用另一个数组名值过滤我的数组!这里是17、18
$myarray = Array
(
[0] = Array
(
[name] = 17
)
[1] = Array
(
[name] = 18
)
)
$filterBy = $myarray;
$new = array_filter($result, function ($var) use ($filterBy) {
return ($var['name'] == $filterBy);
});
print_r($new);
如何解决此问题?
答案 0 :(得分:1)
我猜这就是您真正想要的:
$filterBy = array_column($myarray, 'name');
$new = array_filter($result, function ($var) use ($filterBy) {
return in_array($var['name'], $filterBy);
});
这会通过查找元素名称也为$result
中的元素来过滤$myarray
。
您可以通过将名称转换为关联数组的键来提高效率:
$filterBy = array_flip(array_column($myarray, 'name'));
$new = array_filter($result, function ($var) use ($filterBy) {
return isset($filterBy[$var['name']]);
});