efficient way to search object in an array by a property

前端 未结 7 1586
傲寒
傲寒 2020-12-29 12:36

well, having something like:

$array[0]->id = \'one\';
$array[0]->color = \'white\';
$array[1]->id = \'two\';
$array[1]->color = \'red\';
$array[2         


        
7条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-29 13:03

    You can iterate that objects:

    function findObjectById($id){
        $array = array( /* your array of objects */ );
    
        foreach ( $array as $element ) {
            if ( $id == $element->id ) {
                return $element;
            }
        }
    
        return false;
    }
    

    Edit:

    Faster way is to have an array with keys equals to objects' ids (if unique);

    Then you can build your function as follow:

    function findObjectById($id){
        $array = array( /* your array of objects with ids as keys */ );
    
        if ( isset( $array[$id] ) ) {
            return $array[$id];
        }
    
        return false;
    }
    

提交回复
热议问题