簡體   English   中英

檢查數組值是否存在於另一個關聯數組中

[英]Check array value exists in another associative array

我有兩個不同的數組(例如) array1array2 我想檢查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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM