November 30, 2016 —John Koster
whereLoose($key, $value)
The whereLoose
method operates similar to the where
method. It filters the collection item's by checking that the given $key
has some value equal to the provided $value
. The whereLoose
method does not check to make sure the item's value and the provided $value
have the same data type. This is the fundamental difference between the where
(discussed in the Laravel Collection Public API: where article) and whereLoose
methods. The whereLoose
method returns an instance of Collection
and does not modify the original collection in any way.
The following code example demonstrates the usage of the whereLoose
method:
1<?php 2 3use Illuminate\Support\Collection; 4 5// Create a new collection. 6$collection = new Collection([ 7 [ 8 'genus' => 'Canis', 9 'name' => 'tundra wolf',10 'age' => '2'11 ],12 [13 'genus' => 'Canis',14 'name' => 'arctic wolf',15 'age' => 416 ],17 [18 'genus' => 'Cucumis',19 'name' => 'cucumber',20 'age' => 221 ]22]);23 24$results = $collection->whereLoose('age', 2);
After the above code has executed, the $results
variable would an instance of Collection
and contain a value similar to the following output:
1object(Illuminate\Support\Collection)[136] 2 protected 'items' => 3 array (size=2) 4 0 => 5 array (size=3) 6 'genus' => string 'Canis' (length=5) 7 'name' => string 'tundra wolf' (length=11) 8 'age' => string '2' (length=1) 9 2 =>10 array (size=3)11 'genus' => string 'Cucumis' (length=7)12 'name' => string 'cucumber' (length=8)13 'age' => int 2
It can be observed that the two age
values have different data types, but were still returned in the $results
collection.
The whereLoose
method is a shortcut to calling the where
method with optional parameters. In fact, the following two examples would produce the same results and are functionally equivalent:
1<?php2 3$results = $collection->whereLoose('age', 2);4 5$results = $collection->where('age', 2, false);
∎
The following amazing people help support this site and my open source projects ♥️
If you're interesting in supporting my work and want to show up on this list, check out my GitHub Sponsors Profile.