簡體   English   中英

PHP檢查數組中是否存在具有屬性的對象

[英]Php check if object with property exists in array

假設我有以下PHP代碼:

$a = new a();
$a->id = 1;

然后,我得到了類型為a的對象的數組$m (但它們實際上可以是任何類型)。 我想檢查m中是否有任何對象的屬性ID等於1。在Java中,我會執行以下操作:

myList
.stream()
.filter(x <- x.id == a.id)
.count();

在PHP中,我嘗試

in_array($a, $m)

但這似乎不起作用,因為很明顯,即使另一個對象具有相同的ID,它仍然是另一個對象。

我顯然可以使用循環,但是實際上我想檢查數組n是否有任何對象在m具有相同的ID,所以我寧願避免嵌套循環。

PHP還具有數組過濾功能,(出於顯而易見的原因)它被稱為array_filter()並使用匿名函數來完成您想要的操作。

function findAllWithId($objects, $id) {
    return array_filter($objects, function($toCheck) use ($id) { 
        return $toCheck->id == $id; 
    });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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