[英]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.