「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Laravel 11のpluck()とselect()の違いを理解する

Laravel 11のpluck()とselect()の違いを理解する

2024 年 11 月 8 日に公開
ブラウズ:328

Understanding the Difference Between pluck() and select() in Laravel 11

最も人気のある PHP フレームワークの 1 つである Laravel は、データ操作のための強力なメソッドを幅広く提供します。このうち、pluck() と select() はコレクションを扱うときによく使用されます。似ているように見えますが、目的は異なります。この記事では、これら 2 つのメソッドの違いを調べ、それぞれをいつ使用するかを説明し、Laravel 11 での使用法を示す実践的なコーディング例を提供します。

摘み取る()とは何ですか?

pluck() メソッドは、コレクション内の単一のキーから値を抽出するように設計されています。これは、配列またはオブジェクトのコレクションから特定の属性を取得する場合に特に便利です。

pluck() の例

製品のコレクションがあり、製品名だけを抽出したいとします:

$collection = collect([
    ['product_id' => 'prod-100', 'name' => 'Desk'],
    ['product_id' => 'prod-200', 'name' => 'Chair'],
]);

// Pluck only the names of the products
$plucked = $collection->pluck('name');

$plucked->all();
// Output: ['Desk', 'Chair']

さらに、pluck() を使用して、結果のコレクションにカスタム キーを割り当てることができます:

$plucked = $collection->pluck('name', 'product_id');

$plucked->all();
// Output: ['prod-100' => 'Desk', 'prod-200' => 'Chair']

pluck() を使用したネストされた値

pluck() メソッドは、ドット表記を使用したネストされた値の抽出もサポートしています:

$collection = collect([
    [
        'name' => 'Laracon',
        'speakers' => [
            'first_day' => ['Rosa', 'Judith'],
        ],
    ],
    [
        'name' => 'VueConf',
        'speakers' => [
            'first_day' => ['Abigail', 'Joey'],
        ],
    ],
]);

$plucked = $collection->pluck('speakers.first_day');

$plucked->all();
// Output: [['Rosa', 'Judith'], ['Abigail', 'Joey']]

重複の処理

重複キーを持つコレクションを処理する場合、pluck() は各キーに関連付けられた最後の値を使用します:

$collection = collect([
    ['brand' => 'Tesla',  'color' => 'red'],
    ['brand' => 'Pagani', 'color' => 'white'],
    ['brand' => 'Tesla',  'color' => 'black'],
    ['brand' => 'Pagani', 'color' => 'orange'],
]);

$plucked = $collection->pluck('color', 'brand');

$plucked->all();
// Output: ['Tesla' => 'black', 'Pagani' => 'orange']

select()とは何ですか?

Laravel の select() メソッドは SQL の SELECT ステートメントに似ており、コレクションから複数のキーを選択し、それらのキーのみを新しいコレクションとして返すことができます。

select()の例

名前と役割の両方を取得するユーザーのコレクションを考えてみましょう:

$users = collect([
    ['name' => 'Taylor Otwell', 'role' => 'Developer', 'status' => 'active'],
    ['name' => 'Victoria Faith', 'role' => 'Researcher', 'status' => 'active'],
]);

$selectedUsers = $users->select(['name', 'role']);

$selectedUsers->all();
// Output: [
//     ['name' => 'Taylor Otwell', 'role' => 'Developer'],
//     ['name' => 'Victoria Faith', 'role' => 'Researcher'],
// ]

select() を使用すると、コレクションから一度に複数の属性を取得できます。

pluck() と select() の主な違い

  • 目的

    • pluck() は、コレクションから単一の属性またはキーと値のペアを抽出するために使用されます。
    • select() は、SQL クエリと同様に、コレクション内の各項目から複数の属性を取得するために使用されます。
  • 戻り構造体:

    • pluck() は、2 番目のキーが指定された場合、値のフラット配列または連想配列を返します。
    • select() は、指定されたキーのみを含む配列のコレクションを返します。
  • 使用法

    • 特定のキーの値のリストが必要な場合は、pluck() を使用します。
    • コレクション内の各要素から複数のフィールドが必要な場合は、select() を使用します。

いつどちらを使用するか?

  • :

    の場合に pluck() を使用します
    • 単一のキーから値を抽出する必要があります。
    • ネストされたデータを扱っており、特定のネストされた属性を取得したいと考えています。
  • :

    の場合に select() を使用します
    • 複数のキーまたは属性を取得する必要があります。
    • 特定のフィールドに焦点を当ててデータを再構築したいと考えています。

結論

Laravel 11 では、pluck() と select() の両方がコレクションを操作する柔軟な方法を提供します。 pluck() は単一の属性の抽出を簡素化しますが、select() を使用すると、複数の属性を操作する必要がある場合により詳細に制御できます。これら 2 つの方法の違いを理解すると、データ操作プロセスを最適化し、よりクリーンで効率的なコードを作成できるようになります。

pluck() と select() の両方をマスターすると、Laravel アプリケーションで複雑なデータ構造を簡単に処理できるようになります。コーディングを楽しんでください!

リリースステートメント この記事は次の場所に転載されています: https://dev.to/asfiaaiman/ Understanding-the-difference-between-pluck-and-select-in-laravel-11-398i?1 侵害がある場合は、study_golang@163 までご連絡ください。 .comを削除してください
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3