Php Foreach循环项目组的总和必须为3
我正在编写一个PHP foreach循环。我使用以下代码来确保只有3个项目被分组到.slide div容器中Php Foreach循环项目组的总和必须为3,php,loops,foreach,Php,Loops,Foreach,我正在编写一个PHP foreach循环。我使用以下代码来确保只有3个项目被分组到.slide div容器中 <?php $count = 0; foreach ($listing as $item):?> <div class='slide> <div class='item'>Item</div> <?php if ($count++ % 3 == 1 ): ?> </div> <div class="s
<?php
$count = 0;
foreach ($listing as $item):?>
<div class='slide>
<div class='item'>Item</div>
<?php if ($count++ % 3 == 1 ): ?>
</div>
<div class="slide">
<?php endif; ?>
<?php endforeach ?>
一个简单的解决方案是在循环之前向$listing
变量追加1或2项(如果需要)
if (count($listing)%3!=0) {
//Append 1 or 2 items from start of array if needed
$listing = array_merge($listing, array_slice($listing, 0, 3-count($listing)%3));
}
array\u slice
调用返回一个数组,其中包含从0
到3-(数组大小)mod 3
(1或2)的项。然后,array\u merge
函数将这1或2项添加到原始的$listing
数组中。完整的代码(以及其他一些小的改进/修复)如下所示:
<?php
$count = 0;
$listing = array(1, 2, 3, 4, 5, 6, 7);
if (count($listing)%3!=0) {
//Append 1 or 2 items from start of array if needed
$listing = array_merge($listing, array_slice($listing, 0, 3-count($listing)%3));
}
?><div class='slide'> <?php
foreach ($listing as $item):
if (($count>0) and ($count%3==0)):
?></div><div class="slide"><?php
endif;
?><div class='item'>Item <?=$item?></div><?php
$count++;
endforeach;
?></div><?php
?>
项目
根据您的数据,您可能需要为原始$listing
包含0或1项的情况添加特殊检查。另外,最好不要修改原始数组,而是使用一个副本将项目追加到foreach循环中并在其中使用。一个简单的解决方案是在循环之前向$listing
变量追加1或2个项目(如果需要)
if (count($listing)%3!=0) {
//Append 1 or 2 items from start of array if needed
$listing = array_merge($listing, array_slice($listing, 0, 3-count($listing)%3));
}
array\u slice
调用返回一个数组,其中包含从0
到3-(数组大小)mod 3
(1或2)的项。然后,array\u merge
函数将这1或2项添加到原始的$listing
数组中。完整的代码(以及其他一些小的改进/修复)如下所示:
<?php
$count = 0;
$listing = array(1, 2, 3, 4, 5, 6, 7);
if (count($listing)%3!=0) {
//Append 1 or 2 items from start of array if needed
$listing = array_merge($listing, array_slice($listing, 0, 3-count($listing)%3));
}
?><div class='slide'> <?php
foreach ($listing as $item):
if (($count>0) and ($count%3==0)):
?></div><div class="slide"><?php
endif;
?><div class='item'>Item <?=$item?></div><?php
$count++;
endforeach;
?></div><?php
?>
项目
根据您的数据,您可能需要为原始$listing
包含0或1项的情况添加特殊检查。另外,最好不要修改原始数组,而是使用一个副本将项目附加到foreach循环中并在其中使用。最近需要使用Bootstrap实现这一点,每3列环绕一行,但找不到一个好的工作答案,所以我提出了一个解决方案。希望能有帮助
<?php
$count = 0;
foreach ($listing as $item) {
if ($count % 3 == 0) {
echo "<div class='slide'>";
}
$count++;
?>
<div class='item'>Item</div>
<?php
if ($count % 3 == 0) {
echo "</div>";
}
}
?>
这些链接将有助于解释操作员,以便您了解发生了什么:
(=模数)
(++=Post increment)最近需要使用Bootstrap实现这一点,每3列环绕一行,但找不到一个好的工作答案,所以我提出了一个解决方案。希望能有帮助
<?php
$count = 0;
foreach ($listing as $item) {
if ($count % 3 == 0) {
echo "<div class='slide'>";
}
$count++;
?>
<div class='item'>Item</div>
<?php
if ($count % 3 == 0) {
echo "</div>";
}
}
?>
这些链接将有助于解释操作员,以便您了解发生了什么:
(=模数)
(++=Post increment)您到底想要什么?像这样?你到底想要什么?像这样?模和增量运算符FTW!模和增量运算符FTW!