【Laravel】keyByとgetメソッドでCollectionを自在に操作する。

2025.04.18

どうもこんにちは塚本です。
今日はLaravelのCollectionについてのブログになります。

Laravelのコレクション操作は、開発効率を向上させる上で非常に強力な機能です。
特にkeyBygetメソッドを組み合わせることで、データの整理や取得が格段に楽になります。

この記事では、これらのメソッドの使い方を具体的な例を交えながら解説します。

keyByメソッドとは?

keyByメソッドは、コレクション内の要素を指定されたキーで再インデックス化します。
これにより、特定のIDや名前をキーとして、コレクションの要素に素早くアクセスできるようになります。

基本的な使い方

$collection = collect([
    ['id' => 1, 'name' => 'John'],
    ['id' => 2, 'name' => 'Jane'],
    ['id' => 3, 'name' => 'Doe'],
]);

$keyed = $collection->keyBy('id');

// 結果
// [
//     1 => ['id' => 1, 'name' => 'John'],
//     2 => ['id' => 2, 'name' => 'Jane'],
//     3 => ['id' => 3, 'name' => 'Doe'],
// ]

上記の例では、元のコレクションの各要素がidをキーとして再インデックス化されています。

getメソッドとは?

getメソッドは、コレクションから特定のキーに対応する値を取得します。
キーが存在しない場合は、デフォルト値を返すことができます。

基本的な使い方

$collection = collect([
    'name' => 'John',
    'age' => 30,
]);

$name = $collection->get('name'); // 'John'
$address = $collection->get('address', 'Unknown'); // 'Unknown'

getメソッドを使うことで、安全にコレクションから値を取得できます。

keyByとgetの組み合わせ

keyByでキーを設定した後、getを使って特定の要素を取得する例を見てみましょう。

$collection = collect([
    ['id' => 1, 'name' => 'John'],
    ['id' => 2, 'name' => 'Jane'],
    ['id' => 3, 'name' => 'Doe'],
]);

$keyed = $collection->keyBy('id');

$john = $keyed->get(1); // ['id' => 1, 'name' => 'John']
$jane = $keyed->get(2); // ['id' => 2, 'name' => 'Jane']

このように、keyByでキーを設定しておくと、getで簡単に特定の要素にアクセスできます。

実践例:ユーザーデータをIDで取得する

実際の開発では、データベースから取得したユーザーデータをIDで管理し、必要に応じて取得するようなケースが考えられます。

$users = User::query()->get(); // データベースからユーザーデータを取得
$usersById = $users->keyBy('id'); // IDをキーとして再インデックス化

$user = $usersById->get(10); // IDが10のユーザーを取得

このように、keyBygetを組み合わせることで、大量のデータから特定の情報を効率的に取得できます。

まとめ

  • keyByメソッドはコレクションの要素を指定されたキーで再インデックス化する。
  • getメソッドはコレクションから特定のキーに対応する値を取得する。
  • これらを組み合わせることで、データの整理や特定の要素へのアクセスが容易になる。

これらのメソッドを使いこなして、Laravelでの開発をさらに効率化していくことができます!


🏢 株式会社ハジメクリエイトについて

この記事は、 株式会社ハジメクリエイト のエンジニアが執筆しました。


💻 Webシステム開発のプロフェッショナル

私たちは、ビジネスの成長をサポートするため、 PHPを用いたオーダーメイドのシステム開発 を提供しています。
お客様一人ひとりのニーズに応じたカスタムシステムを、 企画から開発・運用まで一貫してサポート
さらに、 React Nativeを活用したiOS/Android対応のアプリ開発 も得意としています。

単に「作る」だけでなく、
課題の本質に向き合い、最適な解決策を提案する のがハジメクリエイトのスタイルです。


🧑‍💻 一緒に働く仲間を探しています!

株式会社ハジメクリエイトでは、 自ら考え行動できるエンジニア を募集しています。
「私はこれがしたい!」という想いを持つあなた、一緒にモノづくりを楽しみませんか?

  • 技術で人の役に立ちたい
  • 意見が通る小さなチームで働きたい
  • フロントエンドもバックエンドも、いろいろ挑戦してみたい
  • お客さんと一緒にプロジェクトを育てたい

そんな気持ちがある方なら、きっと居心地のいい環境だと思います。
正社員はもちろん、パートタイムでの参加も歓迎中! 柔軟な関わり方で、あなたらしく働いてください。

👉 採用情報を見る
👉 お問い合わせはこちら


ちょっとでも「この会社、気になるな」と思ったら、ぜひお気軽にご連絡ください📩
最後まで読んでいただきありがとうございました!

  • Laravel
  • Web技術

この記事を書いた人

Sho Tsukamoto

Chief Engineer Sho Tsukamoto

2023年4月入社。Web職人のたまごです。 最近はもっぱらコーディングすることは少なく、LaravelやReact Nativeを用いたシステム開発をメインとしています。

Sho Tsukamotoの書いた記事一覧へ

ハジメクリエイトでは一緒に働く仲間を募集しています!

関連記事