Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP循环表列_Php_Foreach_Html Table - Fatal编程技术网

PHP循环表列

PHP循环表列,php,foreach,html-table,Php,Foreach,Html Table,我有这样一个工资表: 我想这样显示数据 <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&l

我有这样一个工资表:

我想这样显示数据

<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>
如何在PHP上使用foreach显示它

编辑: 这是我的示例数据

{
        [
            'id': 1,
            'salary_name': 'Basic Salary',
            'salary_type': 'Allowance',
            'salary_amount': 5000,
        ],
        [
            'id': 2,
            'salary_name': 'Health Benefits',
            'salary_type': 'Allowance',
            'salary_amount': 500,
        ],
        [
            'id': 3,
            'salary_name': 'Overtime',
            'salary_type': 'Allowance',
            'salary_amount': 300,
        ],
        [
            'id': 4,
            'salary_name': 'Absence',
            'salary_type': 'Cut',
            'salary_amount': 100,
        ],
        [
            'id': 5,
            'salary_name': 'Tax',
            'salary_type': 'Cut',
            'salary_amount': 500,
        ]
    }
我试过这样的代码

<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>
这是输出:
我不知道如何组合这些列

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

<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>

你已经有了什么代码?到目前为止你尝试了什么?请记住,我们对你的数据一无所知。我们可以假设您忘记包含的内容,但这是危险的,因此请显示支持所需结果表的数据示例data@M1sterPl0w我用PHP编写代码,我不知道,我还没有弄明白逻辑。我尝试的是五行数据,其中左侧和右侧的余量数据为空。@M1sterPl0w我已编辑以包含我创建的代码。有可能生成我想要的输出吗?循环您的原始数组,创建成对的余量和切口,然后循环打印表格行的结果谢谢,这很有用。现在我明白了逻辑。