【问题标题】:Table row count confusion PHP Foreach array表格行数混淆 PHP Foreach 数组
【发布时间】:2012-11-12 10:57:01
【问题描述】:

我有这样的数组

Array  ([0] => 8 [1] => 8 [2] => 1 [3]=> 7 [4] => 8 )  

我在 PHP 上使用 ForEach 用上面的数组形成了表格行。但是当您查看上面的数组时,将在第 3 行创建 7 个 TD,在第 4 行创建 8 个 TD。我需要将第 3 行的空白 TD 移动到行首,而不是在行尾显示它。这可能吗??

<table border="1"><tbody>
  <tr align="right">
    <td align="right" colspan="0" rowspan="0" id="td_02">02</td>
    <td align="right" colspan="0" rowspan="0" id="td_06">06</td>
    <td align="right" colspan="0" rowspan="0" id="td_10">10</td>
    <td align="right" colspan="0" rowspan="0" id="td_14">14</td>
    <td align="right" colspan="0" rowspan="0" id="td_18">18</td>
    <td align="right" colspan="0" rowspan="0" id="td_22">22</td>
    <td align="right" colspan="0" rowspan="0" id="td_26">26</td>
    <td align="right" colspan="0" rowspan="0" id="td_30">30</td>
  </tr>
  <tr align="right">
    <td align="right" colspan="0" rowspan="0" id="td_01">01</td>
    <td align="right" colspan="0" rowspan="0" id="td_05">05</td>
    <td align="right" colspan="0" rowspan="0" id="td_09">09</td>
    <td align="right" colspan="0" rowspan="0" id="td_13">13</td>
    <td align="right" colspan="0" rowspan="0" id="td_17">17</td>
    <td align="right" colspan="0" rowspan="0" id="td_21">21</td>
    <td align="right" colspan="0" rowspan="0" id="td_25">25</td>
    <td align="right" colspan="0" rowspan="0" id="td_29">29</td>
  </tr>
  <tr align="right">
    <td>XX</td>
    <td>XX</td>
    <td>XX</td>
    <td>XX</td>
    <td>XX</td>
    <td>XX</td>
    <td>XX</td>
    <td>XX</td>
  </tr>
  <tr align="right">
    <td align="right" colspan="0" rowspan="0" id="td_03">03</td>
    <td align="right" colspan="0" rowspan="0" id="td_07">07</td>
    <td align="right" colspan="0" rowspan="0" id="td_11">11</td>
    <td align="right" colspan="0" rowspan="0" id="td_15">15</td>
    <td align="right" colspan="0" rowspan="0" id="td_19">19</td>
    <td align="right" colspan="0" rowspan="0" id="td_23">23</td>
    <td align="right" colspan="0" rowspan="0" id="td_27">27</td>
  </tr>
  <tr align="right">
    <td align="right" colspan="0" rowspan="0" id="td_31">31</td>
    <td align="right" colspan="0" rowspan="0" id="td_04">04</td>
    <td align="right" colspan="0" rowspan="0" id="td_08">08</td>
    <td align="right" colspan="0" rowspan="0" id="td_12">12</td>
    <td align="right" colspan="0" rowspan="0" id="td_16">16</td>
    <td align="right" colspan="0" rowspan="0" id="td_20">20</td>
    <td align="right" colspan="0" rowspan="0" id="td_24">24</td>
    <td align="right" colspan="0" rowspan="0" id="td_28">28</td>
  </tr>
</tbody></table>

【问题讨论】:

  • 同时显示您创建 html 部分的 php 代码。最好也描述一下表格应该是什么样子,因为从你最初的帖子来看,这并不是 100% 的结论。
  • 我没有在第三行看到“空白 TD”...
  • 根据数组,表格的第三行(array[2])应该只有一个 td,如果您向我们展示您的代码会很有帮助。

标签: php arrays multidimensional-array foreach html-table


【解决方案1】:

我完全不知道您是如何生成表格的,但是..

避免“空白”td 问题的一种方法是确保所有行具有相同数量的 td,这可以通过查找数组的 max 值来完成。

例如:

<?php
    $row_array = array(8, 8, 1, 7, 8);
    $num_tds = max($row_array);
?>
<table border="1" cellpadding="3" cellspacing="3">
    <?php foreach($row_array as $row) : ?>
    <tr>
        <?php for ($i = 0; $i < $num_tds; $i++) : ?>
        <td>&nbsp;</td>
        <?php endfor; ?>
    </tr>
    <?php endforeach; ?>
</table>

没有真正看到你的代码,我只是提供盲目的解决方案,但我希望它有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多