添加小计PHP foreach循环


Adding subtotal PHP foreach loop

我一直在寻求帮助。我认为我需要添加一个额外的循环或计数器,我只是不知道何时何地:)

我正在努力为每位员工完成现金、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

类似于在循环中保持员工ID的方式,您可以保持一个连续的总数。

在你的循环之上:

$tmpSubTotal = 0;

$tmpTotal += $week['total'];:之后

$tmpSubTotal += $week['total'];

以及if语句:

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