flip()
キーと値を入れ替えます。
$collection = collect(['name' => 'ichiro', 'no' => 51, 'team' => 'B']);
dump($collection->flip()->all());
/*
array:3 [▼
"ichiro" => "name"
51 => "no"
"B" => "team"
]
*/
forget()
指定したキーとアイテムを削除します。
$collection = collect(['name' => 'ichiro', 'no' => 51, 'team' => 'B']);
dump($collection->forget('name')->all());
/*
array:2 [▼
"no" => 51
"team" => "B"
]
*/
forPage()
第一パラメーターでページ番号、第二パラメーターで1ページ表示件数を指定すると第一パラメーターで指定したページ番号のデータに関するコレクションを取得します。
$array = [];
for($i = 0; $i < 20; $i++) {
$array[] = $i;
}
dump(collect($array)->forpage(6, 3));
/*
array:3 [▼
15 => 15
16 => 16
17 => 17
]
*/
get()
指定したキーのアイテムを取得します。キーが存在しない場合は第二パラメーターの値で返す値が変わります。
第二パラメーターが指定していない場合はnullを返します。
デフォルト値を設定していると、デフォルト値を返します。
コールバックを設定するとコールバックを実行し、その結果を返します。
$collection = collect(['name' => 'ichiro', 'no' => 51, 'team' => 'B']);
dump($collection->get('name'));
dump($collection->get('age', 0));
dump($collection->get('age', function() {
return '未登録';
}));
/*
"ichiro"
0
"未登録"
*/
groupBy()
指定したキーでグルーピングします。
$collection = collect([
['name' => 'ichiro', 'no' => 51, 'team' => 'B'],
['name' => 'ichiro', 'no' => 31, 'team' => 'NY'],
['name' => 'matsui', 'no' => 55, 'team' => 'G'],
['name' => 'senichi', 'no' => 77, 'team' => 'D'],
]);
dump($collection->groupBy('name')->all());
/*
array:3 [▼
"ichiro" => Collection {#428 ▼
#items: array:2 [▼
0 => array:3 [▶]
1 => array:3 [▶]
]
}
"matsui" => Collection {#424 ▼
#items: array:1 [▼
0 => array:3 [▶]
]
}
"senichi" => Collection {#429 ▼
#items: array:1 [▼
0 => array:3 [▶]
]
}
]
*/