Я застрял на этом и потянулся за помощью. Я считаю, что мне нужно добавить дополнительный цикл или счетчик, я просто не знаю, когда и где 🙂
Я пытаюсь выполнить подытог наличными, CC и итого для каждого сотрудника.
foreach ($weekly as $week){
$week_array = getStartAndEndDate($week['week'],$week['year']);
if(isset($week['employeeid'])){
echo "<TR>";
if($week['employeeid']!=$tmpEmp){
echo "<TD colspan='5'><strong>".$week['employeeid']."</strong></TD></TR>
<TR><TD>".$week_array['week_start']."</TD>";
$tmpEmp = $week['employeeid'];
}
else {
echo "<TD>".$week_array['week_start']."</TD>";
$tmpEmp = $week['employeeid'];
}
echo
"<TD>".$week['CC']."</TD>
<TD>".$week['Cash']."</TD>
<TD>".$week['total']."</TD>
<TD><a href=employee.php?week=".$week['week']."&year=".$week['year'].">Report</a></TD>
</TR>";$tmpCC += $week['CC'];
$tmpCash += $week['Cash'];
$tmpTotal += $week['total'];}
}
echo "<TR><TD><strong>Group Total</strong></TD>
<TD>".$tmpCC."</TD>
<TD>".$tmpCash."</TD>
<TD>".$tmpTotal."</TD>
<TD></TD>
</TR>
</TABLE><HR />";
—Текущий РЕЗУЛЬТАТ —
Employee CC Cash Total View Report
1
2014-10-20 0.00 271.61 271.61 Report
2
2014-10-06 75.38 0.00 75.38 Report
2014-10-13 0.00 472.66 472.66 Report
4
2014-09-29 219.39 0.00 219.39 Report
5
2014-09-29 0.00 464.40 464.40 Report
2014-10-20 390.37 0.00 390.37 Report
Group Total 685.14 1208.67 1893.81
—Требуется результат —
Employee CC Cash Total View Report
1
2014-10-20 0.00 271.61 271.61 Report
Subtotal XX XX XX
2
2014-10-06 75.38 0.00 75.38 Report
2014-10-13 0.00 472.66 472.66 Report
Subtotal XX XX XX
4
2014-09-29 219.39 0.00 219.39 Report
Subtotal XX XX XX
5
2014-09-29 0.00 464.40 464.40 Report
2014-10-20 390.37 0.00 390.37 Report
Subtotal XX XX XX
Group Total 685.14 1208.67 1893.81
Подобно тому, как вы держите идентификатор сотрудника в разных циклах, вы можете сохранить промежуточный итог.
Над вашей петлей:
$tmpSubTotal = 0;
После $tmpTotal += $week['total'];
:
$tmpSubTotal += $week['total'];
И если заявление:
if($week['employeeid']!=$tmpEmp){
if($tmpEmp) {
echo '<td colspan="3"></td><td>' . $tmpSubTotal . '</td><td></td></tr><tr>';
$tmpSubTotal = 0;
}
echo "<TD colspan='5'><strong>".$week['employeeid']."</strong></TD></TR>
<TR><TD>".$week_array['week_start']."</TD>";
$tmpEmp = $week['employeeid'];
}
Других решений пока нет …