2016-08-19 94 views
0

假設有一個號碼在array.which項可以是奇數或偶數像我有含有項從A到Z的陣列現在我想顯示在表項來創建具有動態列的表。但正如你知道的那樣,我想在表格中顯示這些字母的23個字母表,其中最後只包含5列,只有三個字母我想在表格中顯示。在過去的我想應該有三米欄不是5如何使用PHP

這裏是我的代碼,我不能得到什麼我應該怎麼辦?

但我在面對下面的代碼的問題是,第二個循環是不正確的。

<?php 
$arr=array('a','b','c','d','e','f','g','h'); 
$count= sizeof($arr); 
$row=ceil($count/5); 
echo "<table border='1'>"; 
for($r=0;$r<$row;$r++){  
echo "<tr>"; 
    for($j=0;$j<=5;$j++){ 
    echo "<td>'".$arr[$j]."'</td>"; 
    } 

echo "</tr>"; 

} 
echo "</table>"; 
?> 
+0

你得到兩行6列,我測試,現在你能告訴我什麼應該是預期的結果 –

回答

3

我的方法是使用array_slice取出源片,並建立行:

$arr=array('a','b','c','d','e','f','g','h'); 

$offset = 0; 
$num_columns = 5; //adjust number of columns 
$table_html = "<table border='1'>"; 
while($slice = array_slice($arr,$offset,$num_columns)){ 
    $offset += $num_columns; 
    $row_html = ''; 
    foreach($slice as $n) $row_html .= "<td>$n</td>"; 
    $table_html .= "<tr>$row_html</tr>"; 
} 
$table_html .= '</table>'; 
echo $table_html; 

Live demo

enter image description here

0

請嘗試以下代碼。聲明變量所需的列數,以便隨時可以更改。當循環計數與要顯示的列數相同時,關閉tr標記。

<?php 
$arr=array('a','b','c','d','e','f','g','h'); 
$columnLength = 5; 
echo "<table border='1'>"; 
echo "<tr>"; 
for($r=0;$r<count($arr) ; $r++){ 
    echo "<td>'".$arr[$r]."'</td>"; 
    if($r + 1 == $columnLength) { 
     echo "</tr>"; 
    } 
} 
echo "</table>"; 
?> 
+0

這不會生成有效的表格HTML,因爲你沒有開放o ř閉''在第二行 – BeetleJuice

+0

@BeetleJuice,我通過檢查上面的代碼和第二行生成確實有開閉''的元素。我喜歡你的方法,但有疑問。這是我們可以通過避免額外的循環獲得所需的輸出? –

+0

嘿Sameer :-)您會在瀏覽器的DOM檢查器中看到所有標記,因爲瀏覽器會爲您添加缺少的標記。以下是代碼的原始輸出:https://3v4l.org/g8dK2 – BeetleJuice