HTML + FOREACH - 现有数据

时间:2012-07-19 09:27:35

标签: php html css

我有例如:

<?php $array = array(aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj,kkk,lll,mmm,nnn, 111,222,333); ?>

如果我使用foreach:

foreach($array as $a){
  echo $a . '<br />';
}

这告诉我数据:

aaa
bbb
ccc
ddd
eee
fff
...
111
222
333

但我想设置高度的最大位置 - 例如,如果数据太长则应该在新列中:

aaa eee ... 111
bbb fff ... 222
ccc ... ... 333

最好的方法是什么?我可以使用DIV或TABLE。

6 个答案:

答案 0 :(得分:1)

你需要在你的php中添加一个计数器,它为每三个元素创建一个新的div元素,并将所有div个元素浮动到左边。

PHP:

$array = array("aaa","bbb","ccc","ddd","eee","fff","ggg","hhh","iii","jjj","kkk","lll","mmm","nnn", "111","222","333");

$index = 0;
foreach($array as $a){
  $index = $index + 1;
  if ($index % 3 === 1){
      echo '<div class="column">';
  }
  echo $a . '<br />';
  if ($index % 3 === 0){
      echo '</div>';
  }
}
if ($index % 3 !== 0){
      echo '</div>';
}

在CSS中,您需要:

.column{
  float:left;
}

答案 1 :(得分:0)

在PHP中,您可以使用wordwrap()

答案 2 :(得分:0)

如果我正确理解您的问题,您可以使用DIVS并设置高度和宽度(以像素为单位)。测试什么有效。如果您对高度和宽度不满意,您还可以使用javascript来计算字符数。

最后但并非最不重要的是,您可以向PHP添加一个计数器,只需为新列添加中断或div。或者你可以自言自语。

答案 3 :(得分:0)

以下是javascript中的示例 - http://jsfiddle.net/ZAWKq/

使用div并为其设置固定宽度,正如我在上面的示例中所做的那样。在php中它将是 -

<div>
<?php 
foreach($array as $a){
   echo ' '.$a;
}
?>
</div>

休息留给CSS。

答案 4 :(得分:0)

$i=0;
$max=3; //Maximum column 
echo "<table><tr>";
foreach($array as $a){

if($i%$max==0)
{
    echo '</tr><tr>';
}
echo '<td>'.$a.'</td>';
$i++;
}
echo "</tr></table>";

答案 5 :(得分:0)

$array = array("aaa","bbb","ccc","ddd","eee","fff","ggg","hhh","iii","jjj","kkk","lll","mmm","nnn", "111","222","333");

$i=0;
    $maxRow=3; //Fixed row
    $col=(count($array)/$maxRow)+1;
    echo "<table><tr>";

    foreach($array as $a){

        if($i%$col==0)
        {
            echo '</tr><tr>';
        }
        echo '<td>'.$a.'</td>';
      $i++;
    }
    echo "</tr></table>";