相关疑难解决方法(0)

in_array如何检查对象是否在对象数组中?

是否in_array()做对象比较,它检查所有属性都是一样的吗?如果$obj1 === $obj2它只是做指针比较呢?

我正在使用ORM,所以我宁愿循环测试对象,如果$obj1->getId()它已经在数组中,如果它进行对象比较.如果没有,in_array则更简洁.

php object-comparison

13
推荐指数
1
解决办法
1万
查看次数

PHP 检查数组中是否存在具有属性的对象

假设我有以下 PHP 代码:

$a = new a();
$a->id = 1;
Run Code Online (Sandbox Code Playgroud)

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

myList
.stream()
.filter(x <- x.id == a.id)
.count();
Run Code Online (Sandbox Code Playgroud)

在 PHP 我试过

in_array($a, $m)
Run Code Online (Sandbox Code Playgroud)

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

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

php

5
推荐指数
1
解决办法
5205
查看次数

标签 统计

php ×2

object-comparison ×1