2016-08-19 12 views
0

array.whichに奇数か偶数のアイテムがあるとします。aからzのアイテムを含む配列があります。しかし、あなたが知っているように私はテーブルにこれらのアルファベットを表示したい23のアルファベットがあります。最後に私は3つの列でなければならないことを願っています。PHPを使ってダイナミックカラムを使ってテーブルを作成する方法

ここで私は私が何をすればいいのですか?

しかし、私が下のコードで直面した問題は、2番目のループが正しくないということです。

<?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

私がテストしたとして、あなたが2行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を生成しません。 2番目の行の ''を閉じます。 – BeetleJuice

+0

@BeetleJuice、私は上記のコードで生成された要素を検査し、2番目の行は ''の開閉を持っています。私はあなたのアプローチが好きでしたが、疑問を持っています。それは余分なループを避けることによって望ましい出力を得ることができますか? –

+0

Hey Sameer :-)ブラウザのDOMインスペクタにすべてのタグが表示されます。これは、ブラウザが不足しているタグを追加するためです。あなたのコードの生の出力は次のようになります:https://3v4l.org/g8dK2 – BeetleJuice

関連する問題