Laravel Collection 配列を条件に合致するものとそうでないものに分割する

こんにちは。今回はLaravelのCollecitonを使用して指定した条件で配列を分割する方法を解説していきます。

Laravel Collectionのpartitionメソッドを使用して分割

指定した条件で配列を2分割するにはCollectionのpartitionメソッドを使用します。

$collection = collect([1,2,3,4,5,6,7,8,9]);

// 5未満の要素を検索
[$low, $high] = $collection->partition(function($i){ 
     return $i < 5; 
});

// $lowは条件を満たした要素、$highには条件を満たさない要素が入る
// $low = [1,2,3,4], $high = [5,6,7,8,9]

使いどころ

使いどころを考えてみました。

  • 状態を2分割したい場合(完了、未完了)、(未提出、提出済)等
  • ある基準値によりデータの集合を分割したい。(60点以上は合格、未満は不合格)
  • 検索に合致するもの、しないもの

まとめ

2分割する処理をピュアphpで実装する場合、for文でややこしい実装をすることになりそうです。Laravelプロジェクトでは便利な関数が用意されているのでぜひ使っていきましょう。

Laravel

Posted by kobainmac