自动列HTML

自动列HTML,html,Html,我想知道是否可以用HTML和PHP创建自动列 我目前正在使用类似以下内容: <table> <tr> <td> key1: value1<br /> key2: value2<br /> key3: value3<br /> </td> <td> key4: value4<br /> key5: val

我想知道是否可以用HTML和PHP创建自动列

我目前正在使用类似以下内容:

<table>
  <tr>
    <td>
      key1: value1<br />
      key2: value2<br />
      key3: value3<br />
    </td>
    <td>
      key4: value4<br />
      key5: value5<br />
      key6: value6<br />
    </td>
  </tr>
</table>
我希望在一个PHP循环中合并这两行,因此我希望有一个这样的结构,但不仅能够生成一行,而且能够生成两行:

<table>
  <tr>
    <td>
      key1: value1<br />
      key2: value2<br />
      key3: value3<br />
      key4: value4<br />
      key5: value5<br />
      key6: value6<br />
    </td>
  </tr>
</table>

我想您会发现最好的方法是将原始标记与2列一起使用。即使您找到了一些css技巧来消除第二列,您也很可能需要对键/值对进行排序,以使它们显示您想要的方式。我的意思是如果你想要这个:

key1:val1  |  key4:val4  |
key2:val2  |  key5:val5  |
key3:val3  |  key6:val6  |
您需要编写以下代码:

<tr>
    <td>
      key1: value1<br />
      key4: value4<br />
      key2: value2<br />
      key5: value5<br />
      key3: value3<br />
      key6: value6<br />
    </td>
  </tr>

那将是一片混乱。也许还有其他方法可以实现您的目标?

如果您在值中进行硬编码,您可以使用以下两列:

<table>
    <tr>
      <td>key1: value1</td>
      <td>key4: value4</td>
    </tr>
    <tr>
      <td>key2: value2</td>
      <td>key5: value5</td>
    </tr>
    <tr>
      <td>key3: value3</td>
      <td>key6: value6</td>
    <tr>
</table>
key1: value1      key4: value4
key2: value2      key5: value5
如果您想动态地执行列,并且有一半和一半,您可以使用以下php。它需要两个循环,但会得到你想要的

<td>
   <?php for($i = 1; $i <= (sizeof($data)/2); $i++) {
             print $data[$i] + "<br/>";
         } 
   ?>
</td>
<td>
   <?php for($i = (sizeof($data)/2) + 1; $i <= sizeof($data); $i++) {
             print $data[$i] + "<br/>";
         } 
   ?>
</td>

具有可配置Colmun数量的更具动态性的一个:

$columns = 4; // Change to whatever you want

$aData['key1'] = 'col A';
$aData['key2'] = 'col B';
$aData['key3'] = 'col C';
$aData['key4'] = 'col D';
$aData['key5'] = 'col E';
$aData['key6'] = 'col F';
$aData['key7'] = 'col G';
$aData['key8'] = 'col H';
$aData['key9'] = 'col I';
$aData['key10'] = 'col J';

$aColumns = [];
foreach( $aData as $key => $value ) {
    $aColumns[] = $key . ": " . $value;
}

$count_columns = count( $aColumns );

// by row
$current_row = 0;
echo "<table border='1'>";
while( ($current_row)*$columns < $count_columns ) {
    echo "<tr>";
    $offset = $current_row *$columns;

    for( $col = 0; $col < $columns; $col++ ) {
        echo "<td>";    
        echo $aColumns[$col +$offset] ?? "";
        echo "</td>";
    }
    echo "</tr>";
    $current_row++;
}
echo "</table>";

echo "<hr>";

// or by Col
$count_rows = ceil( $count_columns /$columns );
echo "<table border='1'>";
for( $row = 0; $row < $count_rows; $row++ ) {
    echo "<tr>";
    for( $col = 0; $col < $columns; $col++ ) {
        echo "<td>";    
        echo $aColumns[$row +($col*$count_rows) ] ?? "";
        echo "</td>";
    }
    echo "</tr>";
    $current_row++;
}
echo "</table>";
输出

关键字1:col Akey2:col Bkey3:col Ckey4:col Dkey5:col Ekey6:col Fkey7:col Gkey8:col Hkey9:col Ikey10:col J
key1:col-Akey4:col-Dkey7:col-Gkey10:col-Jkey2:col-Bkey5:col-Ekey8:col-Hkey3:col-Ckey6:col-Fkey9:col-i如果我使用例如:for$i=1,我必须做什么;我看了一下我刚才添加的底部