不会用集合你就out了

简介: 不会用集合你就out了

进阶命令


has


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


$collection->has('wzy');


implode


用来连接集合中的项目


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


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


intersect


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


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


isEmpty


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


collect([])->isEmpty();


keyBy


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


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


keyBy进阶技巧


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


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


keys


返回该集合所有的键:


$keys = $collection->keys();


map


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


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


max


返回给定键的最大值:


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


min


返回给定键的最小值:


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


merge


将合并指定的数组或集合到原集合:


$merged = $collection->merge(['price' => 100, 'discount' => false]);


代码示例:


$collection = collect(['one'=>1]);
$merged = $collection->merge(['price' => 100, 'discount' => false]);
dd($merged);


运行结果:


Illuminate\Support\Collection^ {#32
  #items: array:3 [
    "one" => 1
    "price" => 100
    "discount" => false
  ]
}


only


返回集合中指定键的所有项目:


$filtered = $collection->only(['product_id', 'name']);


pluck


获取所有集合中给定键的值:


$plucked = $collection->pluck('name');


pop


移除集合的最后一个元素:


$collection->pop();


shift


移除并返回集合的第一个项目:


$collection->shift();


push


附加一个项目到集合后面:


$collection->push(5);


pull


以键从集合中移除并返回一个项目:


$collection->pull('name');


prepend


在集合前面增加一个元素:


$collection->prepend(0);


小技巧:支持传入两个参数,第一个参数是值,第二个参数是键


$collection->prepend(0, 'zero');


put


在集合内设置一个给定键和数值:


$collection->put('price', 100);


random


从集合中随机返回一个项目:


$collection->random();


小技巧:传入一个整数到 random,则会返回集合类型,传入的整数代表随机返回的数量:


$random = $collection->random(3);


进阶函数认真看


reduce


会将每次迭代的结果传入到下一次迭代:


$total = $collection->reduce(function ($carry, $item) {
    return $carry + $item;
});


reject


以给定的回调函数筛选集合:


$filtered = $collection->reject(function ($item) {
    return $item > 2;
});


reverse


反转集合内项目的顺序:


$reversed = $collection->reverse();


transform


遍历集合并对集合内每一个项目调用给定的回调函数:


$collection->transform(function ($item, $key) {
    return $item * 2;
});


相关文章
|
1月前
|
存储 Java 索引
JAVASet集合
JAVASet集合
24 0
|
4月前
集合
数组的长度不可以发生改变。 但是ArrayList集合的长度是可以随意变化的。 对于ArrayList来说,有一个尖括号代表泛型。 泛型:也就是装在集合当中的所有元素,全都是统一的什么类型。 注意:泛型只能是引用类型,不能是基本类型。 注意事项: 对于ArrayList集合来说,直接打印得到的不是地址值,而是内容。如果内 容是空,得到的是空的中括号:[]
27 0
|
6月前
|
存储 Java 索引
1.9 集合
1.9 集合
27 1
|
10月前
|
设计模式 安全
集合
集合
48 0
|
11月前
|
存储
|
存储 安全 索引
集合 详解
集合 详解
115 0
|
存储 JavaScript 前端开发
集合的实现
集合的实现
集合的实现
|
存储 算法 安全
|
存储 Java 容器
|
存储 算法 安全
集合总结
集合总结
73 0