微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP 循环表列

如何解决PHP 循环表列

我有一张这样的工资表:

enter image description here

我想像这样显示数据

enter image description here

如何在 PHP 上使用 foreach 显示它?

编辑: 这是我的示例数据

{
        [
            'id': 1,'salary_name': 'Basic Salary','salary_type': 'Allowance','salary_amount': 5000,],[
            'id': 2,'salary_name': 'Health Benefits','salary_amount': 500,[
            'id': 3,'salary_name': 'Overtime','salary_amount': 300,[
            'id': 4,'salary_name': 'Absence','salary_type': 'Cut','salary_amount': 100,[
            'id': 5,'salary_name': 'Tax',]
    }

我试过这样的代码

<table width='100%' class='table-bordered'>
            <tr>
                <th align='left' colspan='2' width='50%'>Salary</th>
                <th align='left' colspan='2' width='50%'>Salary Cuts</th>
            </tr>
        foreach($salary->detil as $dg){
            <tr>
                if($dg->salary_type=='Allowance'){
                    <td>$dg->salary_name</td>
                    <td>$dg->salary_amount</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                } else{
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>$dg->salary_name</td>
                    <td>$dg->salary_amount</td>;
                }
            </tr>
        }
        </table>

这是输出

enter image description here

我不知道如何组合这些列

解决方法

为要打印的表格填充数组可能是一个不错的选择:

<table width='100%' class='table-bordered'>
<tr>
    <th align='left' colspan='2' width='50%'>Salary</th>
    <th align='left' colspan='2' width='50%'>Salary Cuts</th>
</tr>
<?php
    $sal=0;
    $salcuts=0;
    foreach($salary->detil as $dg){
        if($dg->salary_type=='Allowance'){
            $r[$sal][1] = $dg->salary_name;
            $r[$sal[[2] = $dg->salary_amount;
            $sal = $sal + 1;
        } else{
            $r[$salcuts][3] = $dg->salary_name;
            $r[$salcuts][4] = $dg->salary_amount;
            $salcuts = $salcuts + 1;
        }
    }
    for($x=0; $x<max($sal,$salcuts); $x++){
        echo "<tr>";
        for($c=1; $c<=4; $c++) {
            echo "<td>" . empty($r[$x][c])?"&nbsp;":$r[$x][c] . "</td>";
        }
        echo "</tr>";
    }        
                
?>
</table>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。