我有一個在db中有許多約會的客戶列表。我想遍歷每個客戶的總計約會時間,以便我可以創建發票。當我運行下面的代碼時,第一個客戶端的約會持續時間被正確添加。然而,我的問題是,對於下一個客戶來說,它似乎也增加了第一個客戶持續時間。 array_sum是正確的方法嗎?如果不是,我需要使用什麼?在Laravel PHP的每個foreach循環中增加array_sum的總和。
foreach($clients as $client)
{
$appointments = Client::find($client->id)->appointments()->get();
foreach($appointments as $appointment)
{
$date1 = $appointment->starts_at;
$date2 = $appointment->ends_at;
$start = Carbon::parse($date1);
$end = Carbon::parse($date2);
$length = $start->diffinhours($end);
$duration[] = $length; //is this correct?
$total = array_sum($duration); //is this correct?
}
$invoice = new Invoice;
$invoice->total_hours = $total;
dd($invoice);
$invoice->save();
}
每個循環後需要重置總和。我的意思是就在第二個foreach循環代碼之前(在獲得'$ appointmentments'之後)使得總變量爲0,即'$ total = 0' – webDev