Laravelのコレクションクラスについて
LaravelのCollectionクラスを雰囲気で使ってたので理解を深めるために調べたことを書いてみる。
Collection
配列データを使いやすくするためにラップしているクラス。
mapやfilterなど様々な便利メソッドが実装されている
よく使うメソッド集
コレクションメソッドは元のコレクションには影響せず、常に新しいコレクションを返却する。
map
コレクションを繰り返しで処理し、指定したコールバックから値を返却する。 下記の例のようにコレクション内のデータを加工したい場合などに頻繁に使用する。
$collection = collect(['hoge', 'fuga'])->map(function ($name) { return strtoupper($name); }); print_r($collection); // Illuminate\Support\Collection Object // ( // [items:protected] => Array // ( // [0] => HOGE // [1] => FUGA // ) // )
filter
指定したコールバックでコレクションをフィルタリングする。
$collection = collect([10, 20, 30, 40, 50])->filter(function ($item) { return $item > 30; }); print_r($collection); // Illuminate\Support\Collection Object // ( // [items:protected] => Array // ( // [3] => 40 // [4] => 50 // ) // )
isEmpty
コレクションが空の場合にtrue、そうでない場合にfalseを返す。
collect([])->isEmpty()); // true collect([1])->isEmpty(); // false
他にもたくさん使うんだけど、疲れてきたから今日はこの辺にしておこう。 ちなみにCollectionの実装自体は下記で見れるので時間ある時に見てみると結構面白いかも。