2017-11-20 11 views
0

この配列構造(下記参照)をデータベースクエリから日付別にグループ化しました。quantitytransamountを掛けて合計を求めます。配列内の2つの列を掛け合わせてその合計を求めよう

これは私がこれまで持っているものです。

array (size=3) 
    '2017-7-03' => 
      array (size=3) 
      0 => 
        array (size=4) 
        'paydate' => string '2017-7-03' (length=9) 
        'tariff' => string 'batch1' (length=31) 
        'quantity' => string '1.0000' (length=6) 
        'transamount' => string '20.0000' (length=7) 
      1 => 
        array (size=4) 
        'paydate' => string '2017-7-03' (length=9) 
        'tariff' => string 'Eye Test' (length=8) 
        'quantity' => string '1.0000' (length=6) 
        'transamount' => string '5.0000' (length=6) 
      2 => 
        array (size=4) 
        'paydate' => string '2017-7-03' (length=9) 
        'tariff' => string 'hub photos' (length=16) 
        'quantity' => string '1.0000' (length=6) 
        'transamount' => string '82.0000' (length=7) 
        '2017-7-04' => 
      array (size=9) 
      0 => 
        array (size=4) 
        'paydate' => string '2017-7-04' (length=9) 
        'tariff' => string ' Register' (length=21) 
        'quantity' => string '1.0000' (length=6) 
        'transamount' => string '20.0000' (length=7) 

目的は、日付でグループ化されたすべてのトランザクションの合計に取得することです。

+1

'$結果のようなもので終わる必要があります= array_reduce($ myarrayの、機能($、$アイテム){リターン$キャリー+ $アイテム[ '数量' を運びます] * $ item ['transamount'];}、0.0); ' –

+0

ありがとうございました。それは私のために働いた – Ricchard

答えて

0

日付をキーとしてトランザクションにアクセスする必要があるかどうかわからないので、これはうまくいかないかもしれません...しかし、このようなものは、合計を持つ各配列項目に要素を追加します。これにより

// loop through the arrays sorted by date 
foreach ($groups as $group) 
{ 
    $total = 0; 
    // loop through each transaction 
    foreach ($group as $transaction) 
    { 
     // Add to the total for each purchase group 
     $total += $transaction->quantity * $transaction->transamount; 
    } 
    // put the total into the group array 
    $group->total = $total 
} 

あなたは

'total' => (calculated value),  
'2017-7-03' => 
     array (size=3) 
     0 => 
       array (size=4) 
       'paydate' => string '2017-7-03' (length=9) 
       'tariff' => string 'batch1' (length=31) 
       'quantity' => string '1.0000' (length=6) 
       'transamount' => string '20.0000' (length=7) 
     1 => 
       array (size=4) 
       'paydate' => string '2017-7-03' (length=9) 
       'tariff' => string 'Eye Test' (length=8) 
       'quantity' => string '1.0000' (length=6) 
       'transamount' => string '5.0000' (length=6) 
     2 => 
       array (size=4) 
       'paydate' => string '2017-7-03' (length=9) 
       'tariff' => string 'hub photos' (length=16) 
       'quantity' => string '1.0000' (length=6) 
       'transamount' => string '82.0000' (length=7) 
       '2017-7-04' => 
関連する問題