簡體   English   中英

在div中顯示php foreach值

[英]display php foreach values in div

我有

  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

我怎樣才能做到這一點?

如果您不應該開始新的一行,則可以跟蹤模數。

重新格式化問題后編輯

我認為您所需要的只是以下方面的東西:

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

您可以像這樣:

$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>";
   }
}

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

像這樣簡單地使用

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語句。

默認情況下,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>';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM