如何获取for循环Laravel中数字的总和

我有一个循环,其中每一步我都获得当天的价格。现在,我想获取所有天数的总和并将其显示给用户。这是我的以下尝试:

for ($f = 0; $f < count($room_ids); $f++) {
    $data = Price::whereIn('id',$room_ids)
        ->whereDate('from_date','<',$from_date)
        ->whereDate('to_date','>   ',$to_date)
        ->orderBy('created_at','asc')
        ->take(1)
        ->get();
//    $sum_price += array_sum($data[$f]->sales_price)
//or this one 
//    $sum_price += $data[$f];
    $data_array[] = $data[$f]->sales_price.'======'.$dates[$i].'==============' ;
}

但是,每次我得到1天的价格时,就不会得到所有天数的总和。我该如何实现?

dahom 回答:如何获取for循环Laravel中数字的总和

您可以在Laravel Eloquent中使用sum函数。请检查here了解详情。

$sum_price = 0;
$data = Price::
      whereIn('id',$room_ids)
      ->whereDate('from_date','<',$from_date)
      ->whereDate('to_date','>   ',$to_date)
      ->orderBy('created_at','asc')
       ->sum('price');
$sum_price = $data[0];
echo $sum_price; // This will give you total price.
,
$sum_price = 0;
$data = Price::
      where`enter code here`In('id','asc')
       ->sum('price');
$sum_price = $data[0];
echo $sum_price;
,

您的代码非常混乱,没有多大意义。

例如,为什么要使用for循环?您的查询将始终返回相同的结果,那么循环的意义何在?

$i是什么?

由于您的查询始终返回一个结果->take(1),因此只有$data[0]会有一个值,$data[$f]应该返回什么,例如$data[1]$data[2]

您可以使用查询生成器对价格求和

$sum = Price::whereIn('id',$room_ids)
    ->whereDate('from_date',$from_date)
    ->whereDate('to_date','>',$to_date)
    ->orderBy('created_at','asc')
    ->sum('sales_price');
,

尝试一下:

$sum_price[] = $data[$f]->sales_price;
// here use this and outside of your loop do an array sum
$sum = array_sum($sum_price);
本文链接:https://www.f2er.com/3168104.html

大家都在问