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
)