[英]Check array value exists in another associative array
我有两个不同的数组(例如) array1
和array2
。 我想检查array1
是否存在array2
中的值。
Array1
(
[0] => Array
(
[id] => 7
[title] => Course1
)
[1] => Array
(
[id] => 8
[title] => course2
)
[2] => Array
(
[id] => 9
[title] => course3
)
)
Array2
(
[0] => 7
[1] => 8
)
我用了:
foreach ($array2 as $id) {
$found = current(array_filter($array1, function($item) {
return isset($item['id']) && ($id == $item['id']);
}));
print_r($found);
}
当我运行此代码时,出现以下错误:
Undefined variable: id
错误的原因是您试图在匿名函数中使用一个不可用的变量。 阅读相关的PHP文档 (尤其是示例#3),以确保您清楚我在说什么。
简而言之,变量$id
在闭包(或匿名函数)的父范围中声明。 为了使它在您的闭包中可用,您必须通过use
语句使其可用。
如果将代码的关键行更改为:
$found = current(array_filter($array1, function($item) use ($id) {
您的程序应能按预期工作。
这是根据您的问题的简单代码:
foreach($array2 as $id){
return in_array($id, array_column($array1, 'id'));
}
确保这对您有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.