Collection的使用

图片.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');
Collection的使用_第1张图片
图片.png
Collection的使用_第2张图片
2.取数组值的最后一部分字符串

switch可以使用数组代替,get可以有一个默认值

Collection的使用_第3张图片
3.`switch`可以使用数组代替
Collection的使用_第4张图片
取两年中月份金额之差
Collection的使用_第5张图片
每天收入
Collection的使用_第6张图片
将数据库取出的信息组合成用户名和邮件数组

你可能感兴趣的:(Collection的使用)