flip()
flip方法交换collection的key和对应的value的值:
$collection = collect(['name' => 'taylor', 'framework' => 'laravel']);
$flipped = $collection->flip();
$flipped->all();
// ['taylor' => 'name', 'laravel' => 'framework']
forget()
forget方法将会移除key对应的值:
$collection = collect(['name' => 'taylor', 'framework' => 'laravel']);
$collection->forget('name');
$collection->all();
// ['framework' => 'laravel']
forPage()
forPage方法返回一个新的collection,它将包含当前的传入页的数字。这个方法一个参数时接收页的数字,第二个参数数字代表将要展现每一页将要显现的数字:
$collection = collect([1, 2, 3, 4, 5, 6, 7, 8, 9]);
$chunk = $collection->forPage(2, 3);
$chunk->all();
// [4, 5, 6]
get()
get方法返回key值对应的元素。假如key不存在时,则会返回null:
$collection = collect(['name' => 'taylor', 'framework' => 'laravel']);
$value = $collection->get('name');
// taylor
你可选第二个参数作为默认值作为:
$collection = collect([‘name’ => ‘taylor’, ‘framework’ => ‘laravel’]);
$value = $collection->get(‘age’, 34);
// 34
你可以调取回调函数作为默认值。假如指定的key不存在时则返回回调函数返回值:
$collection->get('email', function () {
return 'taylor@example.com';
});
// taylor@example.com
groupBy()
groupBy方法通过传入的key对collection进行分组:
$collection = collect([
['account_id' => 'account-x10', 'product' => 'Chair'],
['account_id' => 'account-x10', 'product' => 'Bookcase'],
['account_id' => 'account-x11', 'product' => 'Desk'],
]);
$grouped = $collection->groupBy('account_id');
$grouped->all();
/*
[
'account-x10' => [
['account_id' => 'account-x10', 'product' => 'Chair'],
['account_id' => 'account-x10', 'product' => 'Bookcase'],
],
'account-x11' => [
['account_id' => 'account-x11', 'product' => 'Desk'],
],
]
*/
你可以通过回调函数过滤替换key的字符串。这个回调函数会返回键值分组后的值:
$grouped = $collection->groupBy(function (