Laravelのバージョンアップを行おうと思いCHANGELOGを眺めていたら、
v5.7.19でこんな記述が
Added Illuminate\Support\Collection::whereBetween method (#26888)
以前からあった気がするなと思ったのですが、QueryBuilderではなくCollectionでした。
気になったので、ちょっと試す。
>>> $c = collect([['v' => 1], ['v' => 2], ['v' => 3], ['v' => '3'], ['v' => 4]]);
=> Illuminate\Support\Collection {#3155
all: [
[
"v" => 1,
],
[
"v" => 2,
],
[
"v" => 3,
],
[
"v" => "3",
],
[
"v" => 4,
],
],
}
>>> $c->whereBetween('v', [2, 4])
=> Illuminate\Support\Collection {#3149
all: [
1 => [
"v" => 2,
],
2 => [
"v" => 3,
],
3 => [
"v" => "3",
],
4 => [
"v" => 4,
],
],
}
>>>
filterでcallback書くよりは簡単。
文字列の"3"
が対象になっちゃうのは、いまいちな気がしますがphpっぽい。