phparraysobject

How can I find an entry by object property from an array of objects?


The array looks like:

[0] => stdClass Object
        (
            [ID] => 420
            [name] => Mary
         )

[1] => stdClass Object
        (
            [ID] => 10957
            [name] => Blah
         )
...

And I have an integer variable called $v.

How could I select an array entry that has an object where the ID property has the $v value?


Solution

  • You either iterate the array, searching for the particular record (OK in a one-time only search) or build a hashmap using another associative array.

    For the former, something like this

    $item = null;
    foreach($array as $struct) {
        if ($v == $struct->ID) {
            $item = $struct;
            break;
        }
    }
    

    See this question and subsequent answers for more information on the latter: Reference PHP array by multiple indexes