Laravel Collectionのpluckメソッドを使って必要な情報を取り出す方法

pluckメソッドは、Laravelのコレクションを使用して、指定されたキーの値のみを抽出するための便利なメソッドです。

指定したキーの値を新しいコレクションとして取得することができます。

pluckメソッドの基本的な構文は次の通りです。

$users = collect([
    ['id' => 1, 'name' => 'John'],
    ['id' => 2, 'name' => 'Jane'],
    ['id' => 3, 'name' => 'Doe']
]);
$names = $users->pluck('name');

// ['John', 'Jane', 'Doe']

この場合、pluckメソッドを使用してnameキーの値を抽出することができます。

pluckメソッドは、単一のキーだけでなく、複数のキーを指定することもできますし、ネストした値も取得できます。

その場合、新しいコレクションには指定されたキーの値が配列として格納されます。

例えば、次のような商品から抽出することができます。

$products = collect([
    ['id' => 1, 'name' => 'Phone', 'price' => 999],
    ['id' => 2, 'name' => 'Laptop', 'price' => 1999],
    ['id' => 3, 'name' => 'Tablet', 'price' => 599]
]);

$details = $products->pluck(['name', 'price']);

/*
    [
        ['name' => 'Phone', 'price' => 999],
        ['name' => 'Laptop', 'price' => 1999],
        ['name' => 'Tablet', 'price' => 599]
    ]
*/


$collection = collect([
    [
        'name' => 'Laracon',
        'speakers' => [
            'first_day' => ['Rosa', 'Judith'],
        ],
    ],
    [
        'name' => 'VueConf',
        'speakers' => [
            'first_day' => ['Abigail', 'Joey'],
        ],
    ],
]);
 
$plucked = $collection->pluck('speakers.first_day');
 
$plucked->all();
 
/*
    [
        ['Rosa', 'Judith'],
        ['Abigail', 'Joey']
    ]
*/

このようにして、pluckメソッドを使用してコレクションから特定のキーの値を抽出することができます。

抽出された値は新しいコレクションとして返されます。

pluckメソッドはコレクションの値を抽出するための便利なメソッドです。データの整形に役に立ちます。