Добавление промежуточного цикла PHP foreach

Я застрял на этом и потянулся за помощью. Я считаю, что мне нужно добавить дополнительный цикл или счетчик, я просто не знаю, когда и где 🙂

Я пытаюсь выполнить подытог наличными, 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

1

Решение

Подобно тому, как вы держите идентификатор сотрудника в разных циклах, вы можете сохранить промежуточный итог.

Над вашей петлей:

$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'];
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]