😸

[Laravel]配列でpluckを使う方法

2022/12/13に公開

はじめに

本記事は、筆者による理解の復習・確認やアウトプットの練習のために書いております。
間違った解釈等ございましたら、ご連絡いただけますと幸いです。

結論

Arr::pluck()を使う

$staff = [
  [
    'name' => 'tanaka',
    'gender' => 'male',
    'menus' => [
      ['id' => 1, 'name' => 'menu1']
    ]
  ],
  [
    'name' => 'sato',
    'gender' => 'famle',
    'menus' => [
      [ 'id' => 2, 'name' => 'menu2' ]
    ]
  ],
  [
    'name' => 'kondo',
    'gender' => 'male',
    'menus' => [
      [ 'id' => 3, 'name' => 'menu3' ]
    ]
  ],
]

staff という配列から name だけ抜き出すには以下のように書く。

Arr::pluck($staff, 'name');
/*
  [
    [ 'name' => 'tanaka' ],
    [ 'name' => 'sato' ],
    [ 'name' => 'kondo' ]
  ]
*/

ネストされた配列でも Arr::pluck()が使える

Arr::pluck($staff, 'menus.name');
/*
  [
    [ 'name' => 'menu1' ],
    [ 'name' => 'menu2' ],
    [ 'name' => 'menu3' ]
  ]
*/

array_pluck は 5.8 系以降、非推奨となっている

https://readouble.com/laravel/5.8/ja/upgrade.html?#string-and-array-helpers

参考

https://github.com/laravel/framework/blob/9.x/src/Illuminate/Collections/Arr.php

GitHubで編集を提案

Discussion