php 梯形单元格列混淆中的多个循环数组

php multiple loops array in terraced cell columns confusion

我将在轮播幻​​灯片中实现的关联数组中有 10 个项目。我想每页显示 8 个项目,分为 4 列:

| id 1 | id 2 | id 3 | id 4 |
| id 5 | id 6 | id 7 | id 8 |

或(也许)

| id 1 | id 3 | id 5 | id 7 |
| id 2 | id 4 | id 6 | id 8 |

但我只是得到这个结果:

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

让我们看看在第一列和其余列中,顶部和底部的单元格具有相同的 ID。 下面是我的数组,我正在使用 foreach 循环。

$data = array(
    array(
        'id'    => 1,
        'cat'   => 'cat 1',
        'title' => 'Title 1',
    ),
    array(
        'id'    => 2,
        'cat'   => 'cat 2',
        'title' => 'Title 2',
    ),
    array(
        'id'    => 3,
        'cat'   => 'cat 3',
        'title' => 'Title 3',
    ),
    array(
        'id'    => 4,
        'cat'   => 'cat 4',
        'title' => 'Title 4',
    ),
    array(
        'id'    => 5,
        'cat'   => 'cat 5',
        'title' => 'Title 5',
    ),array(
        'id'    => 6,
        'cat'   => 'cat 6',
        'title' => 'Title 6',
    ),
    array(
        'id'    => 7,
        'cat'   => 'cat 7',
        'title' => 'Title 7',
    ),
    array(
        'id'    => 8,
        'cat'   => 'cat 8',
        'title' => 'Title 8',
    ),
    array(
        'id'    => 9,
        'cat'   => 'cat 9',
        'title' => 'Title 9',
    ),
    array(
        'id'    => 10,
        'cat'   => 'cat 10',
        'title' => 'Title 10',
    ),
);


<div class="container">
    <ul>
        <?php 
            $i = 1; 
            $j = 1;
            foreach($data as $k => $v) : 
        ?>
        <li>
        <?php if( $j <= 8 ) : ?>
            <div class="item top item_<?php echo $i++; ?>">
                <span><?php echo $v['cat']; ?></span>
                <h4><?php echo $v['title']; ?></h4>
            </div>
            <div class="item bottom item_<?php echo $i++; ?>">
                <span><?php echo $v['cat']; ?></span>
                <h4><?php echo $v['title']; ?></h4>
            </div>
        <?php endif; ?>
        </li>
        <?php endforeach; ?>
    </ul>
</div>

如有任何建议或指导,我们将不胜感激。

提前致谢

此代码可以提供帮助:

<div class="container">
    <ul>
        <?php
            $i = 1;
            foreach($data as $k => $v) {?>
                    <?php if( $i % 2 === 1) { ?>
                    <?php if( $i > 1) { ?></li><?php } ?>
                    <li>
                        <div class="item top item_<?php echo $i; ?>">
                    <?php } elseif ($i % 2 === 0) {?>
                        <div class="item bottom item_<?php echo $i; ?>">
                    <?php } ?>
                            <span><?php echo $v['cat']; ?></span>
                            <h4><?php echo $v['title']; ?></h4>
                        </div>
                <?php $i++;?>
            <?php } ?>
            <?php if( $i > 1) { ?>
                </li>
            <?php } ?>
</ul>
</div>

我也稍微优化了一下代码