我有一个foreach循环,它构建了一个产品页面,基本上它将我的产品放在3行。
参见代码:
foreach ($product_sets as $product)
{
$currentRow = ceil($currentItem / 3);
$currentColumn = $currentItem - (($currentRow - 1) * 3);
if ($number_of_blanks == 2) :
if (($number_of_rows > 1 && $currentRow == ($number_of_rows - 1) && $currentColumn == 2) || ($number_of_rows == 1 && $currentColumn == 1)) :
?>
<li><img src="<?php echo site_url('assets/img/blocks/guarantee.png'); ?>" alt="5 Year Guarantee" width="242" height="156"></li>
<?php
$currentItem++;
endif;
endif;
?>
<li class="<?php if($currentItem % 3 == 0) echo 'endHomeBlock';?>">
<?php $this->load->view('blocks/product_small', array('product' => $product)); ?>
</li>
<?php
$currentItem++;
}
我想要做的是在第一行的末尾放置一个图像(一个销售点),然后在其他行中随机放置一个图像,但保留3个项目(包括图像作为销售点)一排。我有一个名为images的数组中的图像路径,看起来与此相似,
$images = array(
'iamge1.png',
'image2.png,
'image3.png,
'image4.png,
);
我怎样才能做到这一点?我现在已经玩了几个小时了:(
答案 0 :(得分:0)
所以我要做的是创建图像的哈希表以及表中要显示它们的点。表的关键是索引,值将是图像名称。
假设$currentItem
从零开始,对于第一行中的第三个项,您将拥有的第一个键为2
。
然后在循环中,检查并查看哈希表中是否有$currentItem
。如果是,则打印图像并递增$currentItem
(并重新计算行和列),然后打印$product
。如果它不在哈希表中,只需像正常一样打印$product
。
答案 1 :(得分:0)
抱歉,我没有太多时间为您编写完整的代码,但以下内容应该有效:
<ul>
<li><?php
foreach($items as $i=>$item){
// ...write item...
if(($i % 3)==0 && $i!=0){ // if multiple of 3 and not the first time..
?></li><li><?php
}
}
?></li>
</ul>