How to search objects to see if they contain a specific value?
13,724
To check if the name
property exists in an object:
if(isset($obj->name)) {
// It exists!
}
So, if you want to find those objects that had $name
properties:
$result = array_filter($myArray, function($x) {
return isset($x->name);
}); // Assuming PHP 5.3 or higher
Author by
Rob Fyffe
Updated on June 12, 2022Comments
-
Rob Fyffe almost 2 years
I have various objects that look like this:
Array ( [0] => stdClass Object ( [tid] => 18 [vid] => 1 [name] => test [description] => [format] => [weight] => 0 [depth] => 0 [parents] => Array ( [0] => 0 ) ) [1] => stdClass Object ( [tid] => 21 [vid] => 1 [name] => tag [description] => [format] => [weight] => 0 [depth] => 0 [parents] => Array ( [0] => 0 ) ) )
Basically I need to find out weather a [name] value exists in these objects, how do I go about doing this?
-
Rob Fyffe about 12 yearsThanks. But it's the actual value I need. I have tried various things such as counting the array items and then using a for loop to check weather each name property of each object equals my value. This I think is working at the moment but if there are a lot of objects, could this get quite slow?
-
Ry- about 12 years@Robert: That would depend on how many objects you have, but there's really no faster way to search through an unsorted list.
-
shasi kanth over 10 yearsIs it possible to check multiple properties at a time, instead of using isset() for every property ?
-
Ry- over 10 years@dskanth: You can pass multiple variables to
isset
, and it’s the same ofand
ing them all together.