PHP for Loop with Table

时间:2016-09-28 15:22:25

标签: php

尝试在表格中输出以下内容:

   | 1 | 2 |
1  | 1 | 2 |
2  | 3 | 4 |

(前1,2表示列标题。左1,2表示行标题)

代码

<?php
$rows_count = 2;
$cols_count = 2;
?>
<?php if($rows_count > 0): ?>
          <table>
            <tr>
              <th></th>
          <?php for ( $cols = 1; $cols <= $cols_count; $cols++ ) : ?>
                  <th><?php echo get_post_meta( $post_id, $prefix . 'col_title_' . $cols, true ); ?></th>
          <?php endfor; ?>
            </tr>
            <?php for ( $rows = 1; $rows <= $rows_count; $rows++ ) : ?>
            <tr>
              <th><?php echo get_post_meta( $post_id, $prefix . 'row_title_' . $rows, true ); ?></th>
              
              <?php for ( $cells = 1; $cells <= $cols_count; $cells++ ) : ?>
                <td><?php echo get_post_meta( $post_id, $prefix . 'cell_value_' . $cells, true ); ?> <?php echo $cells; ?></td>
              <?php endfor; ?>
              
            </tr>
          <?php endfor; ?>
          </table>
<?php endif; ?>

问题,如何让它输出上面的表格?所以基本上需要在下一行循环中继续使用$ cells。

即第1行值1,值为2 第2行第3行,第4行

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

在那里某处遗漏<?php endif; ?>。也许低于</table>?此外,在您的代码开头缺少?>,我想在开始新的$cols_count = 2;阻止之前<?php以下?

恕我直言,这看起来有点乱,但也许这只是我。我删除了get_post_meta,您可以将其重新添加。

<?php
  $rows_count = 2;
  $cols_count = 2;
  $current_cell_value = 1;
?>

<?php if($rows_count > 0): ?>
  <table>
    <tr>
      <th></th>
      <?php for ( $cols = 1; $cols <= $cols_count; $cols++ ) : ?>
      <th><?php echo $cols ?></th>
      <?php endfor; ?>
    </tr>

    <?php for ( $rows = 1; $rows <= $rows_count; $rows++ ) : ?>
      <tr>
      <th>
        <?php echo $rows ?>
      </th>

      <?php for ( $cells = 1; $cells <= $cols_count; $cells++ ) : ?>
        <td><?php echo $current_cell_value++ ?></td>
      <?php endfor; ?>
    <?php endfor; ?>
    </tr>
  </table>
<?php endif; ?>

答案 1 :(得分:0)

使用另一个变量来保存跨行的计数。

&#13;
&#13;
<?php
$rows_count = 2;
$cols_count = 2;
$counter = 1;
?>
<?php if($rows_count > 0): ?>
  <table>
    <tr>
      <th></th>
  <?php for ( $cols = 1; $cols <= $cols_count; $cols++ ) : ?>
          <th><?php echo get_post_meta( $post_id, $prefix . 'col_title_' . $cols, true ); ?></th>
  <?php endfor; ?>
    </tr>
    <?php for ( $rows = 1; $rows <= $rows_count; $rows++ ) : ?>
    <tr>
      <th><?php echo get_post_meta( $post_id, $prefix . 'row_title_' . $rows, true ); ?></th>
      
      <?php for ( $cells = 1; $cells <= $cols_count; $cells++ ) : ?>
        <td><?php echo get_post_meta( $post_id, $prefix . 'cell_value_' . $cells, true ); ?> <?php echo $counter++; ?></td>
      <?php endfor; ?>
      
    </tr>
  <?php endfor; ?>
  </table>
<?php endif; ?>
&#13;
&#13;
&#13;