2016-10-18 15 views
0

価格と数量を含む料金モデルがあります。価格と数量を掛け合わせて結果を合計し、最終結果をbillに変更したいと考えています。ここに私の配列配列内の複数のフィールドを合計する方法

[ 
    [ 
    "Title" => "Price 1", 
    "Quantity" => "1", 
    "Price" => "1", 
    ], 
    [ 
    "Title" => "Price 2", 
    "Quantity" => "232", 
    "Price" => "32632", 
    ], 
    [ 
    "Title" => "Price 3", 
    "Quantity" => "11", 
    "Price" => "2115", 
    ], 
] 
+0

そして、あなたの問題は、正確に何ですか?この配列を反復処理して "手動で"しようとしましたか? 問題がどこから始まるかわかりません。 – matiit

+0

私はそれを知っていません、私は複数のフィールドとdinamicフォームを持っていると、私は私が私は私が私は計算表を更新するために価格と数量を掛ける必要があります$電荷配列のフィールドを格納する –

答えて

1

$billItemsがあなたの最初の配列であると仮定すると、あなたは1行で行うことができます。

$grandTotal = array_sum(array_map(function($item) { return $item['Quantity'] * $item['Price']; }, $billItems)); 
1

あなたはこの

$集・>合計( '価格')のようなコレクションを使用することができます。

または

$yourArray = [ 
     [ 
      "Title" => "Price 1", 
      "Quantity" => "1", 
      "Price" => "1", 
     ], 
     [ 
      "Title" => "Price 2", 
      "Quantity" => "232", 
      "Price" => "32632", 
     ], 
     [ 
      "Title" => "Price 3", 
      "Quantity" => "11", 
      "Price" => "2115", 
     ] 
    ]; 

$collection = collect($yourArray); 

$payment = $collection->sum(function ($item) { 
    $item['Price'] = $item['Price'] * $item['Quantity']; 
    return $item['Price']; 
}); 

dd($payment); // 7593890 

よりhttps://laravel.com/docs/5.3/collections#method-sum

+0

($ item、$ key){//新しい物件$ item ['val'] = price * qty})を追加してください。 –

+0

okeey私は試してみます –

+0

$ addition = $ addition - > each $ add - > each(function($ item、$ key){//新しいプロパティを追加する$ item ['val'] = price * qty}); –

関連する問題