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>
我也稍微优化了一下代码
我将在轮播幻灯片中实现的关联数组中有 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>
我也稍微优化了一下代码