$collection = collect([1, 2, 3, 4, 5, 6, 7]);//数组转为集合
$chunks = $collection->chunk(4);//chunk是拆分每一个数组的个数
$chunks->toArray(); //结果转成数组
// [[1, 2, 3, 4], [5, 6, 7]]
//collapse()集合合并
$collection = collect([[1, 2, 3], [4, 5, 6], [7, 8, 9]]);
$collapsed = $collection->collapse();
$collapsed->all();
// [1, 2, 3, 4, 5, 6, 7, 8, 9]
//array_collapse()数组直接合并
$array = array_collapse([[1, 2, 3], [4, 5, 6], [7, 8, 9]]);
// [1, 2, 3, 4, 5, 6, 7, 8, 9]
$oInfo=Speaker::select(DB::raw('spearker.meeting_id,GROUP_CONCAT(`spearker` separator \';\') as spearker'))
->groupBy('spearker.meeting_id')
->get();id meeting_id speaker
1 1 张
集合
是一个很好用的数据类型,在 PHP 中我们常常使用
数组
来处理数据,而
laravel
提供了许多
集合
封装好的方法来处理数据,许多
数组
做不到或者处理比较繁琐的,
集合
却可以轻易做到,可以让我们少些一些处理数据的方法。
使用方法:
collect() 创建
集合
辅助函数 collect 为给定
数组
返回一个新的 Illuminate\Support\Collection 实例
$collection = collect([
'user_id' => '1',
collection = collect(['name'=>'Mr.Lee', 'gender'=>'男']);PS:相关的还有 every()、except()、only()、firstWhere()、last()等方法;$collection = collect([['男'=>1], ['女'=>1], ['男'=>3]]);'details'=>['gender'=>'男', 'age'=>100]]);['name'=>'Mr.Lee', 'gender'=>'男'],
public static void main(String[] args) {
List<Integer> list = new ArrayList();
//给list添加5000个元素 分别 1 到 5000
for (int i = 1; i < 5000; i++) {
Laravel
Collection是基于PHP Array之上的一个非常好用的API,我们可以把它看做是超级
数组
(Super Arrays),因为它拥有很多原生array所没有的功能。今天我们要来学习一下Chunk函数的使用。假设我们有一个叫Room的Model,数据库里对应的rooms table中储存的是一系列的rooms。那么首先我们如果要获取所有的rooms,那么我们可以用get()://
public class collectionsTest {
public static void main(String[] args) {
ArrayList<Integer> a =new ArrayLi
在实际项目中,我们会遇到同时更新数据库中某个表(下称表A)中的多条数据,而更新得内容则需要取自于另外一张表(下称表B),表A和表B都是从数据库中get方式取得的数据,在这种情况下我们可以这么做: // 根据商家Id查找出所有的商品信息 $goodsInfo = Goods::whereIn('shop_id', explode(',', $sidStr))->get(); ...
使用场景:
Laravel
为Eloquent的
集合
提供了开箱即用的分页,但不能在普通
集合
上使用它。
集合
有forPage()方法,但它的级别更低,因此它不生
成
分页链接。因此,您必须创建一个LengthAwarePaginator实例。但是,如果您希望与Eloquent的
集合
相同呢?然后使用macro!
这样做的好处是,语法和输出几乎与Eloquent
集合
paginate()方法相同,因此在测试时可以(相对地)轻松地将其替换为Eloquent
集合
。
有两种方法:
1. 使用macro
可以将
集合
mac