- 创建集合
- 什么是集合?即:它是一种更具读取性和处理能力的数组封装;
- 比如,我们从数据库得到的数据列表,它就是一种集合
- 数据集合,提供了大量的方法方便我们进行各种操作
- 除了数据库对象返回的数据集合之外,我们还可以自行创建数据集合;
//创建一个数据集合
$collection = collect([‘张三’,’李四’, ‘王五’, null]);
//使用dd查看它的类型
dd($collection);
//直接return可以返回
return $collection;
e. 数据集合提供了大概有三十多个(31?)处理数据集合的方法,可链式调用;
f. 这里我们把最常用的演示一遍,剩下的所有,可以自行参考手册方法列表;
//以底层数组形式输出
return $collection->all();
//map方法,类似访问器,可修改输出
return $collection->map(function ($value,$key){
return “$key.[$value]”;
});
//支持链式,reject获取非true的值
return $collection->reject(function ($value, $key){
return $value === null;
})->map(function ($value, $key){
return “$key.[$value]”;
});
//filter筛选为true的值,和reject相反.
return $collection->filter(function ($value, $key) {
return $value === null;
});
//search找到后返回key,找不到返回false
return $collection->search(‘王五’);
//集合分割
return $collection->chunk(2);
//迭代输出
$collection->each(function ($value){
echo $value;
});
PS: 这里就介绍这么多,更多的我们去手册扫一遍。做项目时,凭记忆回头查,慢慢就熟了
g. 如果说三十多个方法都没有你要的,那还可以自定义方法,比如说所有英文大写:
Collection::macro(‘toUpper’, function(){
//dd(this);
return $this->map(function ($value){
return strtoupper($value);
});
});
return $collection->toUpper();