Laravelでコレクションの重複データを削除
laravelのコレクションで重複データを削除し、一意な値だけのコレクションにしたい場合、unique()メソッドを使います。
単純なコレクションの重複を削除するコードは下記です。
$collection = collect([1, 1, 2, 2, 3, 4, 2]); $unique = $collection->unique(); // [1, 2, 3, 4]
また、ネストされたコレクションの重複を削除するには、下記のように引数に、一意にしたいキー名を指定します。この場合、’brand’が重複するデータは削除されます。
$collection = collect([ ['name' => 'iPhone 6', 'brand' => 'Apple'], ['name' => 'iPhone 5', 'brand' => 'Apple'], ['name' => 'Apple Watch', 'brand' => 'Apple'], ['name' => 'Galaxy S6', 'brand' => 'Samsung'], ['name' => 'Galaxy Gear', 'brand' => 'Samsung'], ]); $unique = $collection->unique('brand'); /* [ ['name' => 'iPhone 6', 'brand' => 'Apple'], ['name' => 'Galaxy S6', 'brand' => 'Samsung'], ] */
詳しくは下記公式ページを参照して下さい。
5.5 コレクション Laravel
コメント