在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 {

我正在尝试使用HTML表在PHP中构建一个类似4x4矩阵的结构。 可以有n个元素。所以称它为4x4矩阵是合适的。可以有任意数量的行。但是一行只能有4列

这是我想做的

这种结构的小提琴是很有趣的

这就是我得到的输出

PHP代码

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

 ?>