如何创建两列PHP?

时间:2013-12-05 20:42:29

标签: php arrays html-table

我正在努力创造这个最糟糕的时间,它应该很简单。我有一个由$info组成的$person=>$personInfoArray数组,我试图说,对于前六个数据,执行一个列,对于下一个x数量,执行另一个列。

我拥有的是:

$infoCounter = 0;
foreach($info as $person => $information){
    $infoCounter++;
    echo '<tr>';
    if($infoCounter <= 5){
        echo '<td>'.$person.'</td>';
        echo '<td>'.$information['Extension'].'</td>';
    }elseif($infoCounter > 5){
        echo '<td>'.$person.'</td>';
        echo '<td>'.$information['Extension'].'</td>';
    }
    echo '</tr>';
}

我基本上是在尝试创建一个看起来像这样的表:

Name            Extension              Name               Extension
--------------------------------------------------------------------
Some one         54545                 Name               9785
Some One else    54212                 Something else     44121

但我得到了:

Name            Extension              Name               Extension
--------------------------------------------------------------------
Some one         54545                 
Name             9785
Some One else    54212 
Something else   44121

思考?这应该是非常容易的。

2 个答案:

答案 0 :(得分:1)

此代码始终包含“2”列。我想你所追求的是这个。

$counter = 0;
    foreach($info as $person => $information){
        if($counter == 0) echo "<tr>";
        echo "<td>$person</td>";
        echo "<td>$information</td>";
        $counter += 2;
        if($counter == 4) {
            $counter = 0;
            echo "</tr>";
        }
    }

请记住,这是粗糙的,不在我的头顶。不确定为什么你想要2列信息的4列,而不是格式化。

答案 1 :(得分:1)

看到您为每个人创建<tr>,请尝试执行以下操作:

$infoCounter = 0;
foreach($info as $person => $information){
    if ($infoCounter % 2 == 0) {
        echo '<tr>';
    }
    echo '<td>'.$person.'</td>';
    echo '<td>'.$information['Extension'].'</td>';
    if ($infoCounter % 2 == 0) {
        echo '</tr>';
    }
    $infoCounter++;
}

检查%modulus