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.
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.
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.
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.
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;
});
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With