laravel的Collections方法使用及介绍(翻译二)

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 (
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值