在PHP中创建矩阵失败
我正在尝试使用HTML表在PHP中构建一个类似4x4矩阵的结构。 可以有n个元素。所以称它为4x4矩阵是合适的。可以有任意数量的行。但是一行只能有4列 这是我想做的 这种结构的小提琴是很有趣的 这就是我得到的输出 PHP代码:在PHP中创建矩阵失败,php,html,matrix,Php,Html,Matrix,我正在尝试使用HTML表在PHP中构建一个类似4x4矩阵的结构。 可以有n个元素。所以称它为4x4矩阵是合适的。可以有任意数量的行。但是一行只能有4列 这是我想做的 这种结构的小提琴是很有趣的 这就是我得到的输出 PHP代码: <table class="tablematrix content table-striped"> <?php $total=7; if($total%4==0) { $tr=$total/4; } else {
<table class="tablematrix content table-striped">
<?php
$total=7;
if($total%4==0)
{
$tr=$total/4;
}
else
{
$tr_temp=$total/4;
$tr=$tr_temp+1;
}
for($i=1;$i<=$tr;$i++)
{
echo '<tr>';
for($j=1;$j<=$total;$j++)
{
echo '<td>'.$j.'</td>';
}
echo '</tr>';
}
?>
</table>
CSS
<style>
.tablematrix {
border-collapse:collapse;
table-layout:fixed;
}
.tablematrix * {
height:50px;
width:50px;
min-width:50px;
min-height:50px;
margin:0px;
padding:0px;
}
.tablematrix th,
.tablematrix td {
text-align: center;
border: 1px solid #dddddd;
}
.tablematrix th {
font-weight: bold;
}
.tablematrix tbody > tr:nth-child(odd) > td,
.tablematrix tbody > tr:nth-child(odd) > th {
background-color: #f9f9f9;
}
</style>
.tablematrix{
边界塌陷:塌陷;
表布局:固定;
}
.表格矩阵*{
高度:50px;
宽度:50px;
最小宽度:50px;
最小高度:50px;
边际:0px;
填充:0px;
}
.表格,
.表格矩阵td{
文本对齐:居中;
边框:1px实心#dddddd;
}
.表格{
字体大小:粗体;
}
.tablematrix tbody>tr:n子项(奇数)>td,
.tablematrix tbody>tr:n个子项(奇数)>th{
背景色:#f9f9f9;
}
输出
我被困在这里了。我不知道怎么继续。有什么建议吗?列数==>4。
行数==
看看这部分代码
echo '<tr>';
for($j=1;$j<=$total;$j++)
{
echo '<td>'.$j.'</td>';
}
echo '</tr>';
echo';
对于($j=1;$j此代码应该可以工作
<table class="tablematrix content table-striped">
<?php
$total=7;
$tr=$total;
$count=1;
for($i=1;$i<=$tr;$i++)
{
echo '<tr>';
for($j=1;$j<=4;$j++)
{
echo '<td>'.$count.'</td>';
$count=$count+1;
}
echo '</tr>';
}
?>
</table>
请试试这个。你犯了一个逻辑错误。我没有测试我的代码。因此,如果我的代码不起作用,请告诉我。谢谢。
您可以在这里查看my ideone。它显示您所需的输出。因此,正如您所说的$total是元素的总数,而不是行的总数,下面的代码将给出正确的结果
<?php
$total=7;
if($total%4==0)
{
$tr=$total/4;
}
else
{
$tr_temp=$total/4;
$tr=$tr_temp+1;
}
$count=1;
for($i=1;$i<=$tr;$i++)
{
echo '<tr>';
for($j=1;$j<=4;$j++)
{
if($count==$total+1)
break;
echo '<td>'.$count.'</td>';
$count=$count+1;
}
echo '</tr>';
}
?>
我希望它能解决您的问题您有:
<?php
$rows = 6;
$cols = 4;
for ($i = 1; $i <= $rows; $i++) {
echo '<tr>';
for ($l = 1; $l <= $cols; $l++) {
echo '<td>'.((($i - 1) * $cols) + $l).'</td>';
}
echo '</tr>';
}
?>
已测试,应执行此任务。检查此代码:
<table class="tablematrix content table-striped">
<?php
$row=6;
$col=4;
$total=$row*$col;
echo "<tr>";
for($i=1;$i<=$total;$i++)
{
echo "<td>".$i."</td>";
if($i%$col==0)
{ echo '</tr>';
if($i!=$total)
echo '<tr>';
}
}
?>
</table>
或
您可以使用此函数。可以优化此函数,使其不使用$tmp变量
function createHtmlMatrix ($w, $h) {
$matrixHtml = '<table class="tablematrix content table-striped">';
$tmp = 0;
for ($i = 0 ; $i < $h ; ++$i) {
$matrixHtml .= '<tr>';
for ($j = 0 ; $j < $w ; ++$j) {
$matrixHtml .= '<td>'.(++$tmp).'</td>';
}
$matrixHtml .= '</tr>';
}
$matrixHtml .= '</table>';
return $matrixHtml;
}
echo createHtmlMatrix(4,5);
函数createHtmlMatrix($w,$h){
$matrixHtml='';
$tmp=0;
对于($i=0;$i<$h;++$i){
$matrixHtml.='';
对于($j=0;$j<$w;++$j){
$matrixHtml.=''(++$tmp.'';
}
$matrixHtml.='';
}
$matrixHtml.='';
返回$matrixHtml;
}
echo-createHtmlMatrix(4,5);
试试这个
<?php
$row = 6;
$column = 3;
echo "<table style = 'border: 1px solid black'>";
for($x= 0; $x<= $row; $x++){
echo "<tr>";
for($y=0; $y<= $column; $y++){
echo "<td>";
echo $y;
echo "</td>";
}
echo "</tr>";
}
echo "</table>";
?>
什么是$total=7?行的总数?$total是元素的总数。@Md Johirul IslamOh得到了它。所以我写了以下代码,将total视为行的总数。让我编辑一下。你答案的第2部分几乎是完美的。但是当total为7时,会生成8个元素。请检查mokNathal的答案。谢谢。@Md Johirul IslamOh工作正常。Th谢谢你的努力。这是一个生成矩阵的有用函数。但这不是我的确切要求。谢谢你分享这个答案。我不明白你为什么编辑你的答案。第一个答案正是我想要的。然后你突然改变了它。有点奇怪。对不起,伙计。无论如何,谢谢你的帮助。@Moknathalu想要第一个吗?第一个是答案。无论如何,我同时接受了另一个答案。回复它。值得分享。是的……现在我们正在讨论。一票赞成@mokNathal@SajeevC我以为你需要动态计算$total,我错了
<?php
$row = 6;
$column = 3;
echo "<table style = 'border: 1px solid black'>";
for($x= 0; $x<= $row; $x++){
echo "<tr>";
for($y=0; $y<= $column; $y++){
echo "<td>";
echo $y;
echo "</td>";
}
echo "</tr>";
}
echo "</table>";
?>