Laravel Collectionを使ってデータの重複を排除する

こんにちは。今回はLaravelでデータの重複を排除する方法を解説します。今回はなるべく手間をかけずに実装したいのでLaravelのCollectionオブジェクトを使用して実装していきます。

Collectionとは

Collectionとは配列操作に特化したLaravelのオブジェクトです。配列のデータ型に対して様々な操作を簡単に行うことができます。生成はcollect関数に配列を渡すだけなので簡単に生成できます。以下のコードはCollectionを生成し、要素数をカウントしています。

// Collectionオブジェクト生成
$collection = collect(['apple','orange','grape']);

// 要素数を数える
$collection->count();

// 3が返される

重複を取り除く

排列から重複を排除してデータを一意にしたい場合はuniqueメソッドを使用します。uniqueメソッドは要素内の重複を取り除き、新たなCollectionを生成します。

$collection = collect([1,2,3,2]);

$uniqueCollection = $collection->unique();

// uniqueCollectionの中身は[1,2,3]

連想排列にも使用できます。

$collection = collect(['a'=>'100','b'=>'200','c'=>'300','b'=>'200']);

$uniqueCollection = $collection->unique();

// 重複しているbが排除される
[
   "a" => "100",
   "b" => "200",
   "c" => "300",
]

まとめ

今回はLaravelのCollectionで配列の重複を排除する方法を解説しました。単純な値の配列、連想排列に対して有効であることがわかりました。

Laravel

Posted by kobainmac