我想要的是在1个表格中显示检索到的数据。但我需要将表格行限制为10,然后转移到另一列
示例输出:
data1 data11
data2 data12
data3 data13
data4 data14
data5 data15
data6 data16
data7 data17
data8 data18
data9 data19
data10 data20
答案 0 :(得分:2)
如果你想使用表格:
<?php
//assuming $data is an array which already contains your data
$data = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
$rowsPerColumn = 10;
$columns = ceil(count($data) / $rowsPerColumn);
echo '<table>';
for ($r = 0; $r < $rowsPerColumn; $r++)
{
echo '<tr>';
for ($c = 0; $c < $columns; $c++)
{
$cell = ($c * $rowsPerColumn) + $r;
echo '<td>' . (isset($data[$cell]) ? $data[$cell] : ' ') . '</td>';
}
echo '</tr>';
}
echo '</table>';
?>
答案 1 :(得分:1)
你可以很容易地使用变量变量创建数据数组我想是这样的:
$i=0;
$j=0;
while($result=fetch_result())
{
$colVar='';
for($depth=0;$depth<=$j;$depth++)
{
$colVar.='['.$i.']';
}
$outputArray{$colVar}=$result;
$i++;
if($i>9)
{
$j++;
$i=0;
}
}
这将为前十行创建一个索引为0-9的数组,然后为每十行添加另一个维度。
如果结果中有一行,则数据将如下所示:
$outputArray[0]=data1;
$outputArray[0][0]=data11;
$outputArray[0][0][0]=data21;
$outputArray[0][0][0][0]=data31;
$outputArray[1]=data2;
$outputArray[1][1]=data12;
$outputArray[1][1][1]=data22;
...
...
$outputArray[9]=data10;
$outputArray[9][9]=data20;
$outputArray[9][9][9]=data30;
然后,您可以根据数组的深度从数据中整齐地创建一个表 - 这意味着如果它是单个数组,则创建一个列,如果它是两个深,则创建两个列,依此类推。
答案 2 :(得分:1)
我建议您使用div
来表示您可以像桌子一样设置样式,而不是使用表格,这对于获得所需的格式更具挑战性。
<style>
// create a column class with a width and float to the left
.column {width:100px;float:left;}
</style>";
<?php
// open/create 1st column
echo "<div class='column'>\n";
// create a range for example
$range = range(1,20);
foreach($range as $r){
// after 10 records, close the last column and open/create a new column
if($r!=1 && $r%10==1){echo "</div>\n<div class='column'>\n";}
// echo your data in a 'cell'
echo "<div class='cell'>data{$r}</div>\n";
}
// close last column
echo "</div>";
?>