【Laravel】 Laravel 5.7コレクション を一気に勉強(1) − all,average,avg,chunk,collapse




この記事は最終更新日から2年以上経過しています。

Laravel5.7のコレクションのメソッドを一通り勉強します。だいたい1日5個くらい。

all()

指定したコレクションのデータを配列で返します。

$array = ['aaa', 'bbb', 'ccc'];
print_r(collect($array)->all());
/*
Array
(
    [0] => aaa
    [1] => bbb
    [2] => ccc
)
*/

average()

avg()メソッドのエイリアスです。

$array = [1, 2, 3, 4, 5];
echo collect($array)->average();
// 3

avg()

指定した値の平均値を返します。

$array = [1, 2, 3, 4, 5];
echo collect($array)->avg();
// 3

chunk()

パラメータに指定したサイズでコレクションを分割します。

$array = [];
for($i = 0; $i < 9; $i++) {
    $array[] = $i;
}
print_r(collect($array)->chunk(3)->toArray());
/*
Array
(
    [0] => Array
        (
            [0] => 0
            [1] => 1
            [2] => 2
        )
    [1] => Array
        (
            [3] => 3
            [4] => 4
            [5] => 5
        )
    [2] => Array
        (
            [6] => 6
            [7] => 7
            [8] => 8
        )
)
*/

collapse()

指定したコレクションのデータを一次コレクションに変換します。

// collapse
$array = [];
for($i = 0; $i < 3; $i++) {
    $array[$i] = [];
    for($j = 0; $j < 3; $j++) {
        $array[$i][] = $j;
    }
}
print_r(collect($array)->collapse()->toArray());
Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 0
    [4] => 1
    [5] => 2
    [6] => 0
    [7] => 1
    [8] => 2
)