图片.png
如果想在laravel
之外使用collection
,可以composer require illuminate/support
总结
1.有可以使用foreach的情况,都可以使用map
2.switch 可以定义到一个 collection 里面的数组里面,然后使用 get 取值,并赋默认值
取出二维数组中的商品价格总和
collect($orders)->map(function($order){ //1.使用map得到只有order_product的数组
return $order['order_product'];
})->flatten()->map(function($order){ //2.flatten 将二维数组变成一维数组
return $order['price']; // 3.再次使用map,过滤数组只得到price的一维数组
})->sum(); //4.sum取出数组中值的总和
collect($orders)->map(function($order){
return $order['order_product'];
})->flatten()
// map与flatten的结合也可以直接使用 flatMap()函数
collect($orders)->flatMap(function($order){
return $order['order_product'];
})->map(function($order){
return $order['price'];
})->sum();
map(function($order){
return $order['price'];
})->sum();
// map只取数组中的一个值,可以直接使用 pluck
collect($orders)->flatMap(function($order){
return $order['order_product'];
})->pluck('price')->sum();
//由于 sum是可以传递参数的,还可以简化
collect($orders)->flatMap(function($order){
return $order['order_product'];
})->sum('price');
图片.png
2.取数组值的最后一部分字符串
switch
可以使用数组代替,get
可以有一个默认值
3.`switch`可以使用数组代替
取两年中月份金额之差
每天收入
将数据库取出的信息组合成用户名和邮件数组