-1

我有一个 PHP 数组,它在表格的每行中生成四列。我需要修改我的 php,所以我每行有八列而不是四列。

例如。当前输出如下所示:

COL 1 COL 2 COL 3 COL 4
COL 5 COL 6 COL 7 COL 8
COL 9 COL 10 COL 11 COL 12
COL 13 COL 14 COL 15 COL 16

但我需要它看起来像这样:

COL 1 COL 2 COL 3 COL 4      COL 5 COL 6 COL 7 COL 8
COL 9 COL 10 COL 11 COL 12   COL 13 COL 14 COL 15 COL 16          

在上一个问题上,我问我是否可以通过 CSS/HTML 做到这一点。强烈建议我修改我的 PHP 代码。我收到了执行此操作的伪代码,但我无法让它工作。逻辑如下:

if($counter % 2 == 0)
    output startting <tr> tag

output the four <td> tags with data

if(($counter +1) % 2 == 0)
    output closing <tr> tag

这是我当前的代码:

            <form>
            <table>
                <?php $counter = 0;
                while ($counter < 20) : 
                $item = $set[$counter]
                                    if($counter % 2 == 0) ?>
                    <tr class="q<?php echo $counter; ?>">                   
                        <td><a class="question" href="<?php echo $item['qurl'] ?>');"><?php echo $item['q'] ?></a></td>
                        <td><input class="a1" type="text" name="a1" maxlength="3" size="3" /></td>
                        <td><input class="a2" type="text" name="a2" maxlength="3" size="3" /></td>
                        <td><input class="submit submit-<?php echo $counter; ?>" type="submit" value="Submit" /></td>
                                    <?php if(($counter +1) % 2 == 0) ?>
                    </tr>
                <?php $counter++; ?>
                <?php endwhile; ?>
            </table>
                            </form>

我是初学者,所以请原谅我的新手尝试。提前致谢。

4

2 回答 2

3

您应该真正检查一下PHP if 语句的语法

$counter = 0;
while ($counter < count($set)) : 
    $item = $set[$counter];
    if($counter % 2 == 0): ?>
        <tr class="q<?php echo $counter; ?>">                   
    <?php endif;?>
            <td><a class="question" href="javascript:soundManager.play('<?php echo $item['qurl'] ?>','audio/part2/type1/type1_<?php echo $item['qurl'] ?>.mp3');"><?php echo $item['q'] ?></a></td>
            <td><input class="a1" type="text" name="a1" maxlength="3" size="3" /></td>
            <td><input class="a2" type="text" name="a2" maxlength="3" size="3" /></td>
            <td><input class="submit submit-<?php echo $counter; ?>" type="submit" value="Submit" /></td>
    <?php if(($counter +1) % 2 == 0): ?>
        </tr>
    <?php endif;?>
    <?php $counter++; ?>
<?php endwhile; ?>
<?php if(($counter +1) % 2 == 0): ?>
    </tr>
<?php endif; ?>
于 2012-07-20T23:31:43.823 回答
2

您可以使用 witharray_chunk()将数组拆分为小数组并打印此..

<table>
<?php foreach (array_chunk($set, 2) as $row_set): ?>
  <tr>
  <?php foreach ($row_set as $item_set): ?>
    <td><?php echo $item_set['qurl']; ?></td>
    <td><?php echo $item_set['q']; ?></td>
  <?php endforeach; ?>
  </tr>
<?php endforeach;?>
</table>

祝你好运 :)

于 2012-10-24T20:25:56.873 回答