src/Braincrafted/ArrayQuery/ArrayQuery.php
public function where($key, $value, $operator = '=', $filters = array())
    {
        $this->where[] = [
            'key'      => $key,
            'value'    => $value,
            'operator' => $operator,
            'filters'  => $filters
        ];

        return $this;
    }
public function where($key, $value, $operator = '=', $filters = array())
    {
        $this->where[] = [
            'key'      => $key,
            'value'    => $value,
            'operator' => $operator,
            'filters'  => $filters
        ];

        return $this;
    }
public function where ( $ key , $ value , $ operator = '=' , $ filters = array ( ) ) { $ this -> where [ ] = [ 'key' => $ key , 'value' => $ value , 'operator' => $ operator , 'filters' => $ filters ] ; return $ this ; }
Add a clause that elements have to match to be returned.

Example 1: **Simple where**

`$select->where('name', 'Bilbo Baggings');`

Example 2: **Different operator**

`$select->where('age', 50, '>=');`

Example 3: **Add filters**

`$select->where('name', 5, '=', [ 'trim', 'count' ]);`

@param mixed $key       Key of the element to evaluate
@param mixed $value     Value the evaluated element has to match (occording to the operator)
@param string $operator Operator used for the evluation
@param array  $filters  Array of filters to be applied to a value before it is evaluated

@return ArrayQuery
Add a clause that elements have to match to be returned .