Php检查数组

时间:2016-02-26 22:48:39

标签: php

假设我有以下PHP代码:

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

然后我有一个类型为a的对象的数组$m(但它们实际上可以是任何类型)。我想检查m中的任何对象是否具有等于1的属性id。在Java中,我会执行以下操作:

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

在PHP中我试过

in_array($a, $m)

但这似乎没有起作用,因为很明显即使另一个对象具有相同的ID,它仍然是一个不同的对象。

我显然可以使用循环,但实际上我想要检查数组n中的任何对象是否在m中具有相同ID的对应对象我宁愿避免嵌套循环。

1 个答案:

答案 0 :(得分:4)

PHP还有一个数组过滤功能,它(由于显而易见的原因)被称为array_filter()并使用匿名函数执行您想要的操作。

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