简体   繁体   中英

how to create table with dynamic column using php

Suppose there is a number of item in array.which may be odd or even like I have an array which contain item from a to z Now I want to display that item in table . But As you know That There are 23 alphabets I want to display these alphabets in table which contains only 5 column in the last you got only three alphabets I want to display them in table . In the last I want that there should be three column not 5.

Here is my code i could not get that what should i do?

But the problem I faced in the below code is that the second loop is not correct.

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

My approach uses array_slice to take out pieces of the source and build rows:

$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

在此处输入图片说明

Try below code. Declaring number of column required in a variable, so which can be changed any time. closing the tr tag when loop count is same as number of columns to be displayed.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM