2011-09-06 61 views
0
<?php 
$values = array(); 
for($i=0;$i<100;$i++){ 
$values[$i] = "aaa" . $i; 
} ?> 
<table> 
<?php 
foreach ($values as $i => $val) { 

echo "<tr><td>" . $val . "</td> </tr>"; 
} ?> 
</table> 

這產生了我:表+ foreach - 新專欄?

aaa1 
aaa2 
... 
aaa50 
... 
aaa90 
... 
aaa100 

我怎樣才能使兩個列?

aaa1 aaa50 
aaa2 .... 
... aaa90 
aaa50 aaa100 

但沒有:

aaa1 aaa2 
aaa3 aaa4 
... .... 
aaa99 aaa100 
+2

用css或php? –

+0

很好的評論,這也取決於他打算做什麼後,與表數據 – Sleeperson

+0

你是否堅持

標籤?有一個不同的標籤結構很好的解決方案。 – CaNNaDaRk

回答

0

,我會做到這一點的方法是創建兩個單獨的表(每一列寬),然後包括他們在一個單一的,兩列的表格:

<?php 
$list=array('a','b','c','d','e','f'); 
$midpoint=floor(count($list)/2); 
$tableHeader='<table width="100%">'; 
$tableFooter='</table>'; 
$leftTable=$tableHeader; 
$rightTable=$tableHeader; 
for ($c=0; $c<$midpoint; $c++) 
{ 
    $leftTable.='<tr><td width="100%">'.$list[$c].'</td></tr>'; 
} 
$leftTable.=$tableFooter; 
for ($c=$midpoint; $c<count($list); $c++) 
{ 
    $rightTable.='<tr><td width="100%">'.$list[$c].'</td></tr>'; 
} 
$rightTable.=$tableFooter; 
$mainTable='<table><tr><td width="50%">'.$leftTable.'</td><td width="50%">'.$rightTable.'</td></tr></table>'; 
echo $mainTable; 
?> 

添加一些CSS刪除子表和邊框周圍的填充等,你應該很好去。

0

既然你已經標上數字,只是抽象下來:

a1 a51 
a2 a52 
... 
a49 a99 
a50 a100 

是完全一樣的

a1 a1+50 
a2 a2+50 
... 
a50 a50+50 

這使得你具有以下代碼:

echo "<table>"; 

for($i=1; $i<=50; $i++) { 
    echo "<tr><td>" . $i . "</td><td>" . ($i+50) . "</td></tr>"; 
} 

echo "</table>"; 

注:這需要你讓表中可以產生這樣。如果它實際上不是這樣編號的,那麼您將不得不想出另一種方法來生成我的清單2中的抽象表(只需考慮條目相對於其左邊鄰居的索引)。

+0

我將這個值得到的數據庫,這不是數字 –

1

試試看,如果這對你有用。無論包含在$ values中的項目的格式如何,它都應該按照您想要的方式打印陣列。

<?php 

$size = count($values); 
$halfSize = intval(ceil($size/2)); 

for ($i = 0; $i < $halfSize; $i++) 
{ 
    $j = $i + $halfSize; 

    echo "<tr><td>" . $values[$i] . "</td>"; 

    // If $size is odd, $halfSize is rounded up. This means that if we have 
    // 3 elements, it will try to access to $values[3], since $halfSize would 
    // be 2. The last second column element should be blank in this case. 
    // So, if $halfSize is odd, and $i is the last element, don't print an 
    // additional table cell. 

    if (!($i == $halfSize - 1 && $size % 2 == 1)) 
     echo "<td>" . $values[$j] . "</td>"; 

    echo "</tr>"; 
} 

?> 
+0

謝謝,但這產生了我第一列:1-100(應1-50)和第二列50-100(這個好) –

+0

是的,有一個錯誤我的代碼我正在糾正它 – silverhx

1

功能

function sqlArr($sql){ 
    $ret = array(); 
    $res = mysql_query($sql) or trigger_error(mysql_error()." ".$sql); 
    if ($res) { 
    while($row = mysql_fetch_array($res)){ 
     $ret[] = $row; 
    } 
    } 
    return $ret; 
} 

代碼

$temp = sqlArr("SELECT value FROM table"); 
$data = array(); 
for($i=0;$i<50;$i++){ 
    $data[] = array($temp[$i],$temp[$i+50]); 
} 
unset($temp); 

模板

<table border='1'> 
<? foreach ($data as $i => $row): ?> 
    <tr> 
    <? foreach ($row as $cell): ?> 
    <td><?=$cell?></td> 
    <? endforeach ?> 
    </tr> 
<? endforeach ?> 
</table>