Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Php check if object with property exists in array

Tags:

php

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.

like image 274
MrD Avatar asked Feb 26 '16 22:02

MrD


People also ask

How do you check if the object is present in an array in PHP?

The in_array() method in PHP is used to check the presence of an element in the array. The method returns true or false depending on whether the element exists in the array or not.

How do you check if a key exists in an array PHP?

PHP array_key_exists() Function The array_key_exists() function checks an array for a specified key, and returns true if the key exists and false if the key does not exist.

How do you check if a value is in an object PHP?

The is_object() function checks whether a variable is an object. This function returns true (1) if the variable is an object, otherwise it returns false/nothing.


1 Answers

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; 
    });
}
like image 107
Erik Avatar answered Oct 12 '22 05:10

Erik