2017-10-16 27 views
1
[ 
     { 
     "total": 71 
     }, 
     { 
     "total": 66 
     } 
    ] 

我怎麼能總結兩個號碼最多給我= 137.我已經試過array_sum($ array_result),但吐奶和錯誤說:PHP的 - 如何添加所有的數字陣列中的

array_sum() expects parameter 1 to be array, object given 

這是我的代碼

$result = DB::table('marks')->where([ 
     ['term', $request->term], 
     ['subject', $request->subject], 
     ['class', $student->class], 
     ['arm', $student->arm], 
    ])->select('total')->get(); 

return array_sum($result); 

return redirect()->back()->with('success', 'Results marked successfully.'); 
+0

array_sum()接受一個數組,而不是如錯誤消息中所述的對象。嘗試使用for循環對結果e sum每個鍵的值「total」 – fattidare

回答

6

如果你只是需要總結total,使用sum()查詢生成器方法:

$result = DB::table('marks')->where([ 
    ['term', $request->term], 
    ['subject', $request->subject], 
    ['class', $student->class], 
    ['arm', $student->arm], 
])->sum('total'); 
+1

完美工作......甚至更好:) –

4

最容易把他們集合中並調用sum()方法。

就像是:

$sum = collect($yourArray)->sum('total'); 

你可以用foreach和臨時變量以及雖然做到這一點。

+0

完美工作 –

1
$result = DB::table('marks')->where([ 
    ['term', $request->term], 
    ['subject', $request->subject], 
    ['class', $student->class], 
    ['arm', $student->arm], 
])->select('total')->get(); 

$result = $result->toArray(); 

現在,你可以簡單地做到這一點,通過DEVK

collect($result)->sum('total'); 

get()返回集合提及。你收藏

直接執行操作,如get()->sum('total')

我希望這有助於。