我有
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
我该怎么做?
答案 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>';