Laravel框架集合用法实例浅析
作者:CrazyCodes 发布时间:2024-05-11 10:03:44
标签:Laravel,集合
本文实例讲述了Laravel框架集合用法。分享给大家供大家参考,具体如下:
前言
集合通过 Illuminate\Support\Collection
进行实例,Laravel的内核大部分的参数传递都用到了集合,但这并不代表集合就是好的。Laravel作为快捷并优雅的开发框架,是有他一定的道理所在的,并非因他的路由、DB、 * 等等。当你需要处理一组数组时,你可能就需要它帮助你快捷的解决实际问题。
创建集合
$collection = collect([1, 2, 3]);
显而易见,这是一部非常简单的操作,请打住你想说“这种操作很复杂”的话,它更类似与早起PHP5.x的版本的声明方式。
$collection = array(1,2,3);
laravel对于collection也没有做任何复杂的事情,会在下一章 《Laravel源码解析之集合》,谢谢
打回原型
如果你想将集合转换为数据,其使用方法也非常的简单
collect([1, 2, 3])->all();
------>
[1, 2, 3]
在不过与考虑性能的情况下,可以使用Laravel集合,毕竟它将帮你完成数组操作的百分之九十的工作。
例如我们需要通过一个水平线切分数组,将其分为2个及以上的数组个数。使用集合可以酱紫做~
$collection = collect([1, 2, 3, 4, 5, 6, 7]);
$chunks = $collection->chunk(4);
$chunks->toArray();
// [[1, 2, 3, 4], [5, 6, 7]]
并且有些还根据sql语句的查询方式来设计的方法,下面就让来看下具体都有哪些吧。
方法列表
这里列出一些常用的集合操作方法,具体及全部请操作官方。
方法 | 注释 |
---|---|
all | 将集合打回原型 |
average & avg | 计算平均值 |
chunk | 将集合拆成多个指定大小的小集合 |
collapse | 将多个数组的集合合并成一个数组的集合 |
combine | 可以将一个集合的值作为「键」,再将另一个数组或者集合的值作为「值」合并成一个集合 |
concat | 将给定的数组或集合值附加到集合的末尾 |
contains | 判断集合是否包含给定的项目 |
count | 返回该集合内的项目总数 |
dd | 打印集合的项目并结束脚本执行 |
diff | 将集合与其它集合或纯 PHP 数组进行值的比较,然后返回原集合中存在而给定集合中不存在的值 |
each | 迭代集合中的内容并将其传递到回调函数中 |
filter | 使用给定的回调函数过滤集合的内容,只留下那些通过给定真实测试的内容 |
first | 返回集合中通过给定真实测试的第一个元素 |
groupBy | 根据给定的键对集合内的项目进行分组 |
push | 把给定值添加到集合的末尾 |
put | 在集合内设置给定的键值对 |
sortBy | 通过给定的键对集合进行排序。排序后的集合保留了原数组键 |
where | 通过给定的键值过滤集合 |
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。
来源:https://segmentfault.com/a/1190000016758044


猜你喜欢
- OpenCV是应用最被广泛的的开源视觉库。他允许你使用很少的代码来检测图片或视频中的人脸。这里有一些互联网上的教程来阐述怎么在OpenCV中
- 问题现在有多个字典或者映射,你想将它们从逻辑上合并为一个单一的映射后执行某些操作,比如查找值或者检查某些键是否存在。解决方案加入你有如下两个
- 两种方法实现:1、在双引号前面加个转义符 \ ,即反斜杠。如"Hello \"W \"orld",会
- 需求在某应用中,需要根据一定的规则生成随机的IP地址,规则类似于192.168.11.0/24这样的CIDR形式给出。实现经过艰苦卓绝的调试
- 【一:下载·安装】1.下载node.js下载地址:Node.js 或者 点击这里下载2.安装2.1选择No
- 深度学习中,模型训练一般都需要很长的时间,由于很多原因,导致模型中断训练,下面介绍继续断点训练的方法。方法一:载入模型时,不必指定迭代次数,
- JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个子集。 JSON
- 首先创建一个表Use Test;Create Table TableTest(`ID` mediumint(8) default '
- 为了更好的理解邮件发送功能的实现,要先了解邮件发送系统的大致流程。首先 电子邮件之间的相互发送接受就像 邮局邮件发送
- 在项目中时间一律显示为2014-10-20 10:22显得很呆板。在微博、QQ空间等网站通常会显示为几秒前,几分钟前,几小时前等容易阅读的时
- MySQL是一个跨平台的开源关系型数据库管理系统,是我们常用的最经济实惠的数据库,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特
- 自定义组件挂载原型上以elementUI二次分装dialog举例PageDialog.vue<!-- 页面提示弹框 --><
- /* JS代码部分 */ 3 const date = new Date()const years = []const months = [
- 第一题: give you two var a and b, print the value of a+b, just do it!根据提议
- 关于django models中添加字段的一个小节,记录下django的models中已经写好了字段,可是后面我又想在添加一些字段,于是就在
- element upload上传带参数<el-button style="margin-left: 10px;"
- 本文为大家分享了vue如何搭建多页面多系统应用,供大家参考,具体内容如下一、多页面多系统应用1、思路使用Vue搭建多页应用。所有系统都在同一
- 这篇文章主要介绍了Python Selenium参数配置方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- vim /etc/my.cnf注释这一行:bind-address=127.0.0.1 ==> #bind-address=127.0
- 一、实验内容 对于下面这幅图像,编程实现染色体计数,并附简要处理流程说明。二、实验步骤1.中值滤波2.图像二值化3.膨胀图像4.腐