我有例如:
<?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。
答案 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>";