Table of Contents
The method where() allows users to filter collection items given a key-value pair. This method filters items by checking whether the $key has some value equal to the provided $value. 
You can also pass a parameter to control how the method compares $key with $value. Laravel runs the given command and returns a new collection of instances containing filtered items that satisfy the condition.
Structure of where()
Illuminate\Support\Collection class provides an easy, accessible wrapper for working with arrays of data.
/**
 * Filter items by the given key value pair.
 *
 * @param  string  $key
 * @param  mixed  $operator
 * @param  mixed  $value
 * @return static
 */
public function where($key, $operator = null, $value = null)
{
    ...
}Examples
The following code displays the basic usage of where() method:
 'America',
        'name'  => 'James',
        'age'   => '22'
    ],
    [
        'country' => 'America',
        'name'  => 'Jason',
        'age'   => '4'
    ],
    [
        'country' => 'Canada',
        'name'  => 'Jusitn',
        'age'   => '12'
    ]
]);
// Get all people with country 'America'
$people = $collection->where('country', 'America');
dd($people);As a result, this will return a collection where each array is compared using the key country to check whether the value is America. Filtered results will hold values similar to the following output:
Illuminate\Support\Collection {
  #items: array [
    0 => array [
        'country' => 'America',
        'name'  => 'James',
        'age'   => '22'
    ]
    1 => array [
        'country' => 'America',
        'name'  => 'Jason',
        'age'   => '4'
    ]
  ]
}In addition, you can also use the less than operator as a second argument to filter people having age less than 16.
$filtered = $collection->where('age', '<', 16);
dd($filtered);The result will be something like this:
Collection {#668 ▼
  #items: array:2 [▼
    1 => array:2 [▼
        "country" => "America",
        "name"  => "Jason",
        "age"   => 4
    ]
    2 => array:2 [▼
        "country" => "Canada",
        "name"  => "Jusitn",
        "age"   => 12
    ]
  ]
}Alternatively, you can also provide a comparison operator in the format ($key, $operator, $value) like in the second example. In case you do not provide any operator, then it is set to an equal operator (=) by default. 
Other operators that can be used  where() are:
| Operators | Description | 
| =  | checks equality between $valueand$keyin collection. Does not compare value types | 
| == | Same as above | 
| === | Same as =but also compares value types. | 
| <> | Ensures inequality between the check $valueand the key value on the collection item. This operator compares the types of the values. | 
| !== | Make sure that the key value on the collection item is greater than the supplied check $value. | 
| < | Ensures that the key value on the collection item is less than the supplied check $value. | 
| < | Make sure that the key value on the collection item is greater than the supplied check $value. | 
| <= | Ensures that the key value on the collection item is less than or equal to the supplied check $value. | 
| >= | Ensures that the key value on the collection item is greater than or equal to the supplied check $value. | 
Check more tutorials by clicking here. To know more about other methods that deal with collection items you can always get help from the documentation.
 
			

