2017-11-09 8 views
0

内のアレイの2つのコレクションのidと合計値をマージ:は、私は次の配列を持つLaravel

array:2 [▼ 
    0 => array:2 [▼ 
    "id" => 3 
    "total" => 2 
    ] 
    1 => array:2 [▼ 
    "id" => 4 
    "total" => 1 
    ] 
] 

array:2 [▼ 
    0 => array:2 [▼ 
    "id" => 3 
    "total" => 5 
    ] 
    1 => array:2 [▼ 
    "id" => 4 
    "total" => 5 
    ] 
    2 => array:2 [▼ 
    "id" => 5 
    "total" => 2 
    ] 
] 

私はIDを維持し、結果を合計する、それらを一緒にマージする必要があり、したがって、結果の配列は次のようになります。

array:2 [▼ 
    0 => array:2 [▼ 
    "id" => 3 
    "total" => 7 
    ] 
    1 => array:2 [▼ 
    "id" => 4 
    "total" => 6 
    ] 
    2 => array:2 [▼ 
    "id" => 5 
    "total" => 2 
    ] 
] 

これらの配列は、toArray()メソッドを使用してラーベルデータベースクエリから取得されるため、 laravelのデフォルトのコレクションメソッドを含むswersも歓迎します。

+0

みては? –

答えて

0

は、あなたがこれまでに試してみました何この

arr3 = arr1->merge(arr2); 
arr3->map(function(itemM)use(arr1, arr2){ 
    return itemM->total = arr1->sum(function(itemS)use(itemM){ 
    return itemS->id == itemM->id ? itemS->total : 0; 
    }) + 
    arr2->sum(function(itemS)use(itemM){ 
    return itemS->id == itemM->id ? itemS->total : 0; 
    }); 
}) 
関連する問題