在div中显示php foreach值

时间:2010-05-20 06:56:36

标签: php html

我有

  foreach ($a as $key => $value) {
     echo "<DIV id='container'>
     <DIV id='middle'>$value</DIV>
     </DIV>";
     //echo "<br />$key:$value<br />\n";
  }

显示结果一个低于其他, 喜欢

1234
5678
2010-05-20
5678
1590
2010-05-19

但我希望它在类似

这样的结构的表格中
1234 5678 2010-05-20
5678 1590 2010-05-19

我该怎么做?

6 个答案:

答案 0 :(得分:1)

如果你应该开始一个新行,你可以跟踪例如模数。

答案 1 :(得分:1)

重新格式化问题后编辑

我认为你需要的只是以下内容:

echo '<table><tr>';
$n = 0;

foreach ($a as $key => $value) 
        {
        if ($n==3)
             {
             $n = 0;
             echo '</tr><tr>';
             }

        echo '<td>'.$value.'</td>';
        $n++;
        }
 echo '</tr></table>';

答案 2 :(得分:1)

你可以这样做:

$counter = 0;
foreach ($a as $key => $value) {
   $counter++;

   if (($counter % 3) === 0)
   {
     echo "<DIV id='container'>
      <DIV id='middle'>$value</DIV>
      </DIV>";
   }
   else
   {
     echo "<DIV id='container' style='float:left;'>
      <DIV id='middle'>$value</DIV>
      </DIV>";
   }
}

答案 3 :(得分:1)

nico说的那种:

foreach ($a as $key => $value) 
{
    echo '<div style="width:33%;float:left">'.$value.'</div>';
}

或者说什么:

$i = 0;
$open = false;

echo '<table>';

foreach( $a as $key => $value )
{
    if( 0 == $i % 3 ) {
        echo '<tr>';
        $open = true;
    }

    echo "<td>$value</td>";

    if( 2 == $i % 3 ) {
        echo '</tr>';
        $open = false;
    }

    $i++;
}

if( $open )
    echo '</tr>';

echo '</table>';

答案 4 :(得分:0)

只需像这样使用,

foreach ($a as $key => $value) {
     echo "<DIV id='container' style='display:inline'>
     <DIV id='middle' style='display:inline'>$value</DIV>
     </DIV>";
     //echo "<br />$key:$value<br />\n";
  }

根据你的第二行添加break语句。

答案 5 :(得分:0)

默认情况下,div不会彼此相邻浮动。您可以给出所有div,除了样式中的每三个float: left。但是,如果您显示表格,则可以使用表格。

如果你可以从$key的值得出来开始一个新行,你可以做类似的事情:

echo '<table><tr>';
foreach ($a as $key => $value) {
    if($key == 'somevalue'){
        //start a new row if the $key allow
        echo '</tr><tr>';
    }
    echo '<td>'.$value.'</td>';
}
echo '</tr></table>';

如果您无法从$key的值获得开始新行,请使用计数器,如下所示:

echo '<table><tr>';
$cnt = 0;
foreach ($a as $key => $value) {
    if($cnt % 3 == 0){
        //start a new row if this row contians 3 cells
        echo '</tr><tr>';
    }
    echo '<td>'.$value.'</td>';
    $cnt++;
}
echo '</tr></table>';