圖片.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`可以使用數組代替
取兩年中月份金額之差
每天收入
將數據庫取出的信息組合成用戶名和郵件數組