【问题标题】:For each wrap every 4 elements in a div using existing ¿counter?对于使用现有 ¿counter 的每个 div 中的每 4 个元素的包装?
【发布时间】:2013-06-01 22:28:54
【问题描述】:

我必须修改此代码,以在 div 内每 4 个拇指(额外图像)回显...

我在 Stackoverflow 上进行了搜索,但所有答案都谈到了设置计数器,我想避免这种情况(如果可能的话)使用已经在计算额外图像的计数器。我认为它就像条件一样简单

如果 counter extraimages==3 echo div.. 但是我如何回到 0 ,或者我可能误解了这样做的方式..

这是设置数组和设置 for each 的代码部分。

<?php if($extraimagecount >0){?>
<?php foreach ($extraimage as $key=>$value){?>



<?php }?>


<?php }?>

<a href="<?php echo DATA_DIR."/".$id."/".$this->get_variable('firstimage');?>" >
    <img src="<?php echo DATA_DIR."/".$id."/".$this->get_variable('firstimage');?>" class="minis"/>
</a>



<?php if($extraimagecount >0){
$rotate=1;
$tumppr=0;

?>
<?php foreach ($extraimage as $key=>$value){

$rotate=$rotate+1;
?>



<a href="<?php echo DATA_DIR."/".$id."/".$value['image'];?>" >
    <img src="<?php echo DATA_DIR."/".$id."/t_".$value['image'];?>" class="minis"/>
</a>



<?php 



if($rotate==8)
{
    $rotate=0;
    $tumppr=$tumppr+1;

    ?>




    <?php 

}
?>

<?php }?>


<?php }?>
</div>


<?php 


 $lftstr="";
 $rgtstr="";
if($extraimagecount >0)
{
$extcnt=count($extraimage); 
$extcntnew=$extcnt+1;

 $extdivide=intval(($extcntnew/8));
 $extmode=($extcntnew % 8);


for($i=0;$i<$extdivide;$i++)   //************ For Right Arrow ***************/
{
?>
    <div id="rgt_<?php echo $i;?>" class="rgt" <?php if($i >0 || $extmode ==0){?>style="display: none;"<?php }?>  ><img class="rgtimg" src="images/rnext.png"></div>
<?php 
    $rgtstr=$rgtstr.$i.'_';
}

for($ii=1;$ii<$extdivide;$ii++)   //************ For left Arrow ***************/
{
    ?>
    <div id="lft_<?php echo $ii;?>" class="lft" style="display: none;" ><img class="lftimg" src="images/lnext.png"></div>
    <?php

    $lftstr=$lftstr.$ii.'_';


}

if($extmode >0)
{
?>
    <div id="lft_<?php echo $extdivide;?>" class="lft" style="display: none;" ><img class="lftimg" src="images/lnext.png"></div>

<?php 

    $lftstr=$lftstr.$extdivide.'_';
}

}
?>

【问题讨论】:

  • 谢谢,但是你能看一下代码吗.. 我可以使用计数器 $rotate... 代码中 $rotate 的原因是什么,是做什么用的?

标签: php arrays if-statement foreach counter


【解决方案1】:

其实很简单,使用 % 操作符。 a%b 将返回 a/b 的剩余部分。这是你如何使用它

for($i=0;$i<9;$i++)
{
    echo $i%3." ";
}

这将打印出来 0 1 2 0 1 2 0 1 2

然后,您可以根据自己的情况使用它来创建 4 人组。

【讨论】:

  • 谢谢,但是你能看一下代码吗.. 我可以使用计数器 $rotate... 代码中 $rotate 的原因是什么,是做什么用的?
  • 嗯,从我所见,$rotate 只是为每个图像添加,所以它等于 sizeof($extraimage)。然后,如果有超过 8 个额外的图像,它会在 $tumppr 中添加一个。这两个变量都不会在脚本中使用一次。它们都用作计数器,但不会用于任何条件、输出或以任何方式添加任何功能,除非代码已从帖子中排除。
  • 好吧,代码肯定可以进行一些清理,我相信它会让事情变得更加清晰。你是从这个块中删除任何代码还是全部删除?
  • 实际上我删除了一些 html 表格,但我没有取出任何 php
  • 好吧,假设使用了 $rotate,它看起来就像它说 if($rotate==8) 的每 8 个图像重置一次。如果你需要做 4s 你可以做 if($rotate==0 || $rotate == 4)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多