Laravelのコレクション(Illuminate\Support\Collection
)は、配列操作をより直感的かつ強力に行うためのクラスです。本記事では、よく使うCollectionメソッドをカテゴリごとにまとめ、簡単な解説とコード例を添えて紹介します。
✅ 基本操作
all()
全要素を配列で取得します。
collect([1, 2, 3])->all(); // [1, 2, 3]
toArray()
配列として返します。
collect(['name' => 'John'])->toArray(); // ['name' => 'John']
toJson()
JSON文字列として返します。
collect(['name' => 'John'])->toJson(); // '{"name":"John"}'
🔄 変換系
map()
各要素に処理を加えて変換します。
collect([1, 2, 3])->map(fn($item) => $item * 2); // [2, 4, 6]
pluck()
特定のキーの値を抽出します。
collect([
['id' => 1, 'name' => 'Apple'],
['id' => 2, 'name' => 'Banana']
])->pluck('name'); // ['Apple', 'Banana']
🔍 フィルタリング系
filter()
条件を満たす要素だけを抽出します。
collect([1, 2, 3, 4])->filter(fn($value) => $value > 2); // [3, 4]
reject()
条件を満たさない要素を抽出します。
collect([1, 2, 3, 4])->reject(fn($value) => $value > 2); // [1, 2]
📦 集計・検索系
sum()
合計値を返します。
collect([1, 2, 3])->sum(); // 6
count()
要素数を返します。
collect(['a', 'b', 'c'])->count(); // 3
contains()
特定の値が含まれているかを判定します。
collect([1, 2, 3])->contains(2); // true
🧮 ソート・整形系
sort()
昇順にソートします(キーを維持)。
collect([3, 1, 2])->sort()->values(); // [1, 2, 3]
sortBy()
指定キーでソートします。
collect([
['price' => 100],
['price' => 50]
])->sortBy('price')->values();
// [['price' => 50], ['price' => 100]]
🔁 その他便利系
each()
各要素に対して繰り返し処理を行います。
collect([1, 2, 3])->each(function ($item) {
echo $item; // 123
});
isEmpty()
空かどうかを判定します。
collect([])->isEmpty(); // true
first()
最初の要素を取得します。
collect([1, 2, 3])->first(); // 1
last()
最後の要素を取得します。
collect([1, 2, 3])->last(); // 3
📝 まとめ
Laravelのコレクションは、データ操作をより柔軟かつ簡潔に行うための強力なツールです。特にループ処理や条件分岐を多用する場面では、コードの可読性や保守性が大きく向上します。今回紹介したメソッドはどれも実務で頻出するものばかりなので、ぜひ活用してみてください。
参考
コメント