首页 > 解决方案 > 用PHP将多维数组转换为html表

问题描述

我在一个 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

有人可以帮忙吗?

标签: phphtmlarrays

解决方案


$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

你把那里的柜台混在一起了。您只需要一个每次循环增加一次的计数器。


推荐阅读