307篇laravel中的集合collect第三篇
一、mapToGroups 方法通过给定的回调函数对集合项进行分组。该回调函数应该返回一个包含单个键 / 值对的关联数组,从而生成一个分组值的新集合:

$collection = collect([['name' => 'John Doe','department' => 'Sales',],['name' => 'Jane Doe','department' => 'Sales',],['name' => 'Johnny Doe','department' => 'Marketing',]
]);
$grouped = $collection->mapToGroups(function ($item, $key) {return [$item['department'] => $item['name']];
});
$grouped->all();
/*['Sales' => ['John Doe', 'Jane Doe'],'Marketing' => ['Johnny Doe'],]
*/$grouped->get('Sales')->all();
// ['John Doe', 'Jane Doe']

二、mapWithKeys 方法遍历集合并将每个值传入给定的回调函数。该回调函数将返回一个包含单个键 / 值对的关联数组:

$collection = collect([['name' => 'John','department' => 'Sales','email' => 'john@example.com',],['name' => 'Jane','department' => 'Marketing','email' => 'jane@example.com',]
]);$keyed = $collection->mapWithKeys(function ($item) {return [$item['email'] => $item['name']];
});
$keyed->all();/*['john@example.com' => 'John','jane@example.com' => 'Jane',]
*/
注释:email如果一样,后面的会覆盖前面的

三、mergeRecursive 方法以递归的形式合并给定的数组或集合到原集合中,如果给定集合项的字符串键与原集合的字符串键一致,则会将给定的集合项的值以递归的形式合并到原集合的相同键中。

$collection = collect(['product_id' => 1, 'price' => 100]);$merged = $collection->mergeRecursive(['product_id' => 2, 'price' => 200, 'discount' => false]);$merged->all();// ['product_id' => [1, 2], 'price' => [100, 200], 'discount' => false]

四、only 方法返回集合中所有指定键的集合项:

$collection = collect(['product_id' => 1, 'name' => 'Desk', 'price' => 100, 'discount' => false]);$filtered = $collection->only(['product_id', 'name']);$filtered->all();// ['product_id' => 1, 'name' => 'Desk']

五、pad 方法将使用给定的值填充数组,直到数组达到指定的大小。该方法的行为与 array_pad PHP 函数功能类似。
要填充到左侧,你应该使用负值。如果给定大小的绝对值小于或等于数组的长度,则不会发生填充:

$collection = collect(['A', 'B', 'C']);$filtered = $collection->pad(5, 0);$filtered->all();// ['A', 'B', 'C', 0, 0]$filtered = $collection->pad(-5, 0);$filtered->all();// [0, 0, 'A', 'B', 'C']

六、reverse 方法用来倒转集合项的顺序,并保留原始的键:

$collection = collect(['a', 'b', 'c', 'd', 'e']);$reversed = $collection->reverse();$reversed->all();/*[4 => 'e',3 => 'd',2 => 'c',1 => 'b',0 => 'a',]
*/

七、sortBy 方法将根据指定键对集合进行排序。排序后的集合会保留原始数组的键,所以在这个例子中我们使用 values 方法将键重置为连续编号的索引:

$collection = collect([['name' => 'Desk', 'price' => 200],['name' => 'Chair', 'price' => 100],['name' => 'Bookcase', 'price' => 150],
]);$sorted = $collection->sortBy('price');$sorted->values()->all();/*[['name' => 'Chair', 'price' => 100],['name' => 'Bookcase', 'price' => 150],['name' => 'Desk', 'price' => 200],]
*/
sortByDesc()该方法与 sortBy 方法一样,但是会以相反的顺序来对集合进行排序

八、toJson 方法将集合转换成 JSON 字符串:

$collection = collect(['name' => 'Desk', 'price' => 200]);$collection->toJson();// '{"name":"Desk", "price":200}'

九、unique 方法返回集合中所有唯一项。返回的集合保留着原数组的键,所以在这个例子中,我们使用 values 方法把键重置为连续编号的索引:

$collection = collect([1, 1, 2, 2, 3, 4, 2]);$unique = $collection->unique();$unique->values()->all();// [1, 2, 3, 4]
当处理嵌套数组或对象时,你可以指定用于确定唯一性的键:
$collection = collect([['name' => 'iPhone 6', 'brand' => 'Apple', 'type' => 'phone'],['name' => 'iPhone 5', 'brand' => 'Apple', 'type' => 'phone'],['name' => 'Apple Watch', 'brand' => 'Apple', 'type' => 'watch'],['name' => 'Galaxy S6', 'brand' => 'Samsung', 'type' => 'phone'],['name' => 'Galaxy Gear', 'brand' => 'Samsung', 'type' => 'watch'],
]);$unique = $collection->unique('brand');$unique->values()->all();/*[['name' => 'iPhone 6', 'brand' => 'Apple', 'type' => 'phone'],['name' => 'Galaxy S6', 'brand' => 'Samsung', 'type' => 'phone'],]
*/

十、values 方法返回键被重置为连续编号的新集合:

$collection = collect([10 => ['product' => 'Desk', 'price' => 200],11 => ['product' => 'Desk', 'price' => 200],
]);$values = $collection->values();$values->all();/*[0 => ['product' => 'Desk', 'price' => 200],1 => ['product' => 'Desk', 'price' => 200],]
*/
$collection = collect([['name' => 'Jim', 'deleted_at' => '2019-01-01 00:00:00'],['name' => 'Sally', 'deleted_at' => '2019-01-02 00:00:00'],['name' => 'Sue', 'deleted_at' => null],
]);$filtered = $collection->where('deleted_at', '!=', null);$filtered->all();/*[['name' => 'Jim', 'deleted_at' => '2019-01-01 00:00:00'],['name' => 'Sally', 'deleted_at' => '2019-01-02 00:00:00'],]
*/

laravel中的集合collect第三篇相关推荐

  1. laravel中的集合collect

    306篇 laravel中的集合collect 一.我们使用 collect 辅助函数从数组中创建一个新的集合实例,对其中每一个元素执行 strtoupper 函数之后再删除所有的空元素: $coll ...

  2. 中职计算机英语教学设计,中职英语教学设计三篇

    中职英语教学设计三篇 篇一:中职英语教学设计教案 教学设计过程 Step I Leading-in and Pre-reading 1. Asking some questions: a) What ...

  3. 在Laravel中使用自己的类库三种方式

    为什么80%的码农都做不了架构师?>>>    虽然Composer使得我们可以重用很多现有的类库(例如packagist.org中的),但是我们仍然可能用到一些不兼容compose ...

  4. java中 set集合_第8篇 Java中的集合(Set)

    Java 集合的 Set 接口 Set类型与List类型的区别 Set: 无序.不可重复 List: 有序.可重复 1.HashSet HashSet的存储结构:HashMap 特点: HashSet ...

  5. 【JAVA进阶】java中的集合(番外篇3)- HashMap源码底层数据结构分析

    写在前面的话 脑子是个好东西,可惜的是一直没有搞懂脑子的内存删除机制是什么,所以啊,入行多年,零零散散的文章看了无数,却总是学习了很多也忘了很多. 痛定思痛的我决定从今天开始系统的梳理下知识架构,记录 ...

  6. Java中Map集合遍历的三种方法

    1.通过keySet()方法来遍历,此方法可以得到对应的key和value: 举一个Demo: package map;import java.util.HashMap; import java.ut ...

  7. php数据迁移脚本,Laravel中数据迁移与数据填充的详细步骤

    前言 这是一篇基础教程,对标 Laravel 文档中的数据迁移和数据填充,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍把. 关于Laravel数据库迁移的理解 最初看到laravel框 ...

  8. php artisan命令怎么写,在 Laravel 中编写第一个 Artisan 命令

    在 Laravel 中编写第一个 Artisan 命令 由 学院君 创建于2年前, 最后更新于 1年前 版本号 #1 15015 views 11 likes 0 collects 不管是 Node. ...

  9. android 界面组件,安卓开发学习周第三篇——Android中的UI组件

    原标题:安卓开发学习周第三篇--Android中的UI组件 在Android APP中,所有的用户界面元素都是由View和ViewGroup的对象构成的.View是绘制在屏幕上的用户能与之交互的一个对 ...

最新文章

  1. Linux中的输入输出管理
  2. [MSSQL2012]LEAD函数
  3. filter 在CSS用的效果
  4. Linux文本处理及用户组管理命令练习
  5. Python时间库—datetime的详解及使用
  6. 计算机配置 凭据分配,win7怎样添加凭据?-win7添加凭证的方法 - 河东软件园
  7. ASP.NET Web API 中 特性路由(Attribute Routing) 的重名问题
  8. 二分查找递归与非递归的时间比较_我们说一说Python的查找算法!
  9. Lecture 21 Parallel Algorithms II
  10. 简单英文题 26 The Nearest Number(python)
  11. qt 复制字符串_Qt字符串处理 QString用法总结(一)
  12. coroutine - yield from
  13. Java队列——线程池创建的例子
  14. 海量存储——致性和高可用专题
  15. 收缩Vcenter数据库
  16. JAVA105字符是什么_什么是Java字符串实习?
  17. python如何抓取图片数据_python 的简单抓取图片
  18. JavaScript事件函数
  19. BUGKU------秋名山老司机
  20. excel文件无法打印提示内存不足_Mac应用程序无法打开提示不明开发者或文件损坏的处理方法...

热门文章

  1. 在MATLAB环境下编写高斯贝塞尔-轨道角动量的光编解码代码
  2. 一个前端js分页计算
  3. 图解机器学习-浅谈机器学习
  4. PDO预处理防御SQL注入
  5. unity古场景、各种小件模型-unity游戏素材
  6. 图像识别和目标检测系列(Part 1)基于传统计算机视觉技术的图像识别简介
  7. yml java集合_JAVA 使用 SnakeYAML 解析与序列化 YAML
  8. 神武服务器维护内容,神武8月29日维护内容介绍 上线仙族男角色慕凌风
  9. vue解决两个字和三个字对齐问题
  10. 分布式锁redisson的使用 看门狗原理