Skip to content

不会用集合你就out了

「这是我参与2022首次更文挑战的第3天,活动详情查看:2022首次更文挑战」。

前两天介绍了laravel集合collection的使用,受到了掘友们的积极反馈,今天再接再厉,又撸一篇。

各位看官,里面请。

进阶命令

has

用来确认集合中是否含有给定的键 存在返回true,不存在返回false

bash
$collection->has('wzy');

implode

用来连接集合中的项目

bash
$collection->implode('juejin', ', ');

tips:数组的implode是将数组转成字符串

intersect

移除任何给定数组或集合内所没有的数值:

ini
$intersect = $collection->intersect(['X', 'Y', 'Z']);

isEmpty

假如集合是空的,isEmpty 方法会返回 true:

scss
collect([])->isEmpty();

keyBy

以给定键的值作为集合项目的键:

ini
$keyed = $collection->keyBy('user_id');

keyBy进阶技巧

传入回调函数,该函数会返回集合的键的值:

bash
$keyed = $collection->keyBy(function ($item) {     return strtoupper($item['product_id']); });

keys

返回该集合所有的键:

ini
$keys = $collection->keys();

map

遍历整个集合并将每一个数值传入给定的回调函数:

bash
$multiplied = $collection->map(function ($item, $key) {     return $item * 2; });

max

返回给定键的最大值:

lua
$max = collect([['x' => 10], ['x' => 20]])->max('x'); $max = collect([1, 2, 3, 4, 5])->max();

min

返回给定键的最小值:

lua
$min = collect([['x' => 10], ['x' => 20]])->min('x'); $min = collect([1, 2, 3, 4, 5])->min();

merge