Php检查数组中是否存在具有属性的对象(Php check if object with property exists in array)

编程入门 行业动态 更新时间:2024-10-24 02:35:52
Php检查数组中是否存在具有属性的对象(Php check if object with property exists in array)

假设我有以下PHP代码:

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

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

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

在PHP中我试过了

in_array($a, $m)

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

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

Let's assume I have the following PHP code:

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

I then have an array $m of objects of type type a (but they really could be of any type). I want to check if any object in m has property id equal to 1. In Java, I'd do something like:

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

In PHP I tried

in_array($a, $m)

but that didn't seem to do work, because obviously even if another object had the same ID it would still be a different object.

I could obviously use a loop, but as really I'd want to check if any object in an array n had a corresponding object with the same ID in m I'd rather avoid a nested loop.

最满意答案

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

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

PHP also has an array filtering functioning, which (for obvious reasons) is called array_filter() and does what you want, with anonymous functions.

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

更多推荐

本文发布于:2023-04-29 04:06:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1334563.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:是否存在   组中   属性   对象   Php

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!