集合也就是高中数学所学的知识,可以通过集合实现很多便捷的操作,这里主要针对laravel8版本,低版本有的操作报错不支持
1.创建一个集合
//集合
public function collect()
{
$data = collect([1,2,3]);
return $data; //输出 [1,2,3]
}
2.计算集合平均值
//集合
public function collect()
{
$data = collect([1,2,3,4])->avg();
return $data; //输出 2.5
}
3.往集合里添加值
//集合
public function collect()
{
$data = collect([1,2,3,4])->concat(['test']);
return $data->all(); //输出 [1,2,3,4,'test'] laravel5.4不需要all就可以输出集合
}
4.判断集合里是否存在某个值
//集合
public function collect()
{
$data = collect([1,2,3,4]);
return $data->contains(1); //输出 true
}
5.判断集合中是否存在某些键值
//集合
public function collect()
{
$data = collect(['a' => 1, 'b' => 2, 'c' => 3]);
return $data->contains('a', 'b'); //输出 true
}
6.获取集合元素个数
//集合
public function collect()
{
$data = collect(['a' => 1, 'b' => 2, 'c' => 3]);
return $data->count(); //输出 3
}
7.获取集合中元素出现的次数
//集合
public function collect()
{
$data = collect([1,2,2,3,3,3,4,4,4,4]);
$count = $data->countBy();
return $count->all(); //输出 ["1":1, "2":2, "3":3, "4":4]
}
8.获取与特定集合不相同的键值
//集合
public function collect()
{
$data = collect(['a' => 1, 'b' => 2]);
$diff = $data->diffKeys([
'a' => 2,
'c' => 3
]);
return $diff->all(); //输出 ["b": 2]
}
9.获取集合重复元素的位置
//集合
public function collect()
{
$data = collect([1,1,2,2,3,4]);
return $data->duplicates(); //输出 ["1":1, "2":3] 1在下标为1时,2在下标为3时重复了
}
10.获取集合的第一个元素
//集合
public function collect()
{
$data = collect([5,1,2,2,3,4])->first();
return $data; //输出 5
}
11.获取集合中第一个满足条件的元素
//集合
public function collect()
{
$data = collect([1,1,2,2,3,4])->first(function($val) {
return $val > 2;
});
return $data; //输出 3 第一个大于2的值
}
12.集合二维数组转一维数组
//集合
public function collect()
{
$data = collect(['a' => 'test', 'b' => 'tim', 'c' => [1, 2, 3]]);
$data = $data->flatten();
return $data->all(); //输出 ['test', 'tim', 1, 2, 3]
}
13.集合删除某个键值
//集合
public function collect()
{
$data = collect(['a' => 'test', 'b' => 'tim', 'c' => [1, 2, 3]]);
$data = $data->forget('c');
return $data->all(); //输出 ["a":"test", "b":"tim"]
}
14.获取集合某个键的值
//集合
public function collect()
{
$data = collect(['a' => 'test', 'b' => 'tim', 'c' => [1, 2, 3]]);
$data = $data->get('a');
return $data; //输出 test
}
集合中还有很多其他的方法。。