计算(减去)包含按月分组数据的两个集合之间的差异

问题描述 投票:0回答:1
  1. 根据按

    cost
    分组的
    Finance
    模型计算
    month
    的总和。

    $data1  = Finance::select(         
         \DB::raw('SUM(cost) as finances_monthly'),
         \DB::raw('(unit) as unit'),
         \DB::raw("DATE_FORMAT(date,'%M %Y') as months")
     )
     ->where('unit', '=', $unit)
     ->whereBetween('date', [$start_date, $end_date])
     ->orderBy('date','asc')
     ->groupby('months','unit')->get();
    
  2. 根据按

    deposite
    分组的
    Accounting
    模型计算
    month
    的总和。

    $data2 =  $MonthlyPayments  = Accounting::select(
        \DB::raw('SUM(deposite) as deposites_monthly'),
        \DB::raw('(unit) as unit'),
        \DB::raw("DATE_FORMAT(payment_date,'%M %Y') as month")
    )
    ->where('unit', '=', $unit)
    ->orderBy('created_at','asc')
    ->whereBetween('payment_date', [$start_date, $end_date])
    ->groupby('month','unit')->get();
    
  3. 计算

    deposite
    cost
    之间的(减去)差异并按
    month
    分组。

    我的问题就在这里。我不知道如何执行特定于月份的减法。

php laravel difference
1个回答
0
投票

你可以使用 array_diff() 来解决这个问题,但你应该确保两个数组的字段相同;

$data1 = $data1->toArray();
$data2 = $data2->toArray();
$diff_data = array_diff($data1, $data2);
© www.soinside.com 2019 - 2024. All rights reserved.