ハジメトーク最新記事

ハジメクリエイト社員による、日々の業務やトレンド、日常のアレコレについてお届けします。

もっと見る

【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での開発をさらに効率化していくことができます!

この記事を書いた人

Sho Tsukamoto

Chief Engineer Sho Tsukamoto

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

Sho Tsukamotoの書いた記事一覧へ

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

関連記事