【问题标题】:Multidimensi array into html table with PHP用PHP将多维数组转换为html表
【发布时间】:2019-06-11 22:30:07
【问题描述】:

我有一个 php 数组中的数据,它给出了以下输出。我正在尝试将此数据格式化为 HTML 表格:

$persen = array(                                             
    array(73671348, 2),                                      
    array(23387730, 4),                                      
    array(21258277, 1),                                      
    array(0, 0),                                         
    array(0, 0),                                         
    array(0, 0)
);

我尝试使用以下代码填充表格:

for ($i = 0; $i < count($persen); $i++)
{                                            
    for ($j = 0; $j < $persen[$i][1]; $j++)                                          
    {                                            
    $noID1 = $i+$j+1;                                        
    $um1 = $persen[$i][0];                                          

    echo '<tr><td>'.$noID1.'</td>                                                
    <td class="text-right">'.$um1.'</td></tr>';                                          
    }
}

我得到以下输出:

NO  VALUE
------------
1   73671348
2   73671348
2   23387730
3   23387730
4   23387730
5   23387730
3   21258277

我希望最终结果如下所示

NO  VALUE
------------
1   73671348
2   73671348
3   23387730
4   23387730
5   23387730
6   23387730
7   21258277

有人可以帮忙吗?

【问题讨论】:

    标签: php html arrays


    【解决方案1】:
    $counter = 0;
    for ($i = 0; $i < count($persen); $i++)
    {
        for ($j = 0; $j < $persen[$i][1]; $j++)
        {
            $counter = $counter +1;
            $noID1 = $i+$j+1;
            $um1 = $persen[$i][0];
    
            echo '<tr><td>'.$counter.'</td>                                                
        <td class="text-right">'.$um1.'</td></tr>';
            echo '<br>';
        }
    }
    

    以上代码的输出:

    1 73671348
    2 73671348
    3 23387730
    4 23387730
    5 23387730
    6 23387730
    7 21258277
    

    你有点混淆了那里的计数器。您只需要一个每次循环增加一次的计数器。

    【讨论】:

      【解决方案2】:

      你可以这样做:

      foreach ($persen as $row) {
          echo str_repeat("<tr><td></td><td>$row[0]</td></tr>", $row[1]);
      }
      

      然后是autonumber the rows with CSS

      【讨论】:

        猜你喜欢
        • 2020-02-28
        • 2020-02-06
        • 2019-09-22
        • 2014-06-28
        • 1970-01-01
        • 1970-01-01
        • 2018-03-31
        • 1970-01-01
        • 2015-11-17
        相关资源
        最近更新 更多