Php 当值为负值时,laravel sum集合忽略
我使用的是laravel sum方法,但当我为Php 当值为负值时,laravel sum集合忽略,php,laravel,Php,Laravel,我使用的是laravel sum方法,但当我为2项的总和返回-1值时,它返回0.2,如果下面是我的代码,我希望忽略该总和: return (object) [ 'sum_of_prices' => $group->sum('sales_price'), 'sum_of_fullboard' => $group->sum('full_board_price'), '
2
项的总和返回-1
值时,它返回0.2
,如果下面是我的代码,我希望忽略该总和:
return (object) [
'sum_of_prices' => $group->sum('sales_price'),
'sum_of_fullboard' => $group->sum('full_board_price'),
'sum_of_halfboard' => $group->sum('half_board_price')
];
在这里,我想绕过负数结果之和,只传递负数或某个东西的默认值,只对posetive结果求和。我假设您使用的是laravel集合
return (object) [
'sum_of_prices' => $group->filter(function($item){
return $item->sales_price >=0
})->sum('sales_price'),
'sum_of_fullboard' => $group->filter(function($item){
return $item->full_board_price >=0
})->sum('full_board_price'),
'sum_of_halfboard' => $group->filter(function($item){
return $item->half_board_price >=0
})->sum('half_board_price')
];
我假设您使用的是laravel collection
return (object) [
'sum_of_prices' => $group->filter(function($item){
return $item->sales_price >=0
})->sum('sales_price'),
'sum_of_fullboard' => $group->filter(function($item){
return $item->full_board_price >=0
})->sum('full_board_price'),
'sum_of_halfboard' => $group->filter(function($item){
return $item->half_board_price >=0
})->sum('half_board_price')
];
您可以使用
sum()
callback将负值更改为零:
return (object) [
'sum_of_prices' => $group->sum(function ($item) {
return $item->sales_price > 0 ? $item->sales_price : 0;
}),
'sum_of_fullboard' => $group->sum(function ($item) {
return $item->full_board_price > 0 ? $item->full_board_price : 0;
}),
'sum_of_halfboard' => $group->sum(function ($price) {
return $item->half_board_price > 0 ? $item->half_board_price : 0;
})
];
您可以使用
sum()
callback将负值更改为零:
return (object) [
'sum_of_prices' => $group->sum(function ($item) {
return $item->sales_price > 0 ? $item->sales_price : 0;
}),
'sum_of_fullboard' => $group->sum(function ($item) {
return $item->full_board_price > 0 ? $item->full_board_price : 0;
}),
'sum_of_halfboard' => $group->sum(function ($price) {
return $item->half_board_price > 0 ? $item->half_board_price : 0;
})
];