Jules Martinez
Jules Martinez

Reputation: 692

For each wrap every 4 elements in a div using existing ¿counter?

i have to modify this code, to echo every 4 thumbs (extraimage) inside a div...

I searched on Stackoverflow but all answers talk about setting a counter, i want to avoid this (if possible) using a counter that is already counting the extraimages.. i think it most be as easy as a conditional

if counter extraimages==3 echo div.. but how do i go back to 0 ,, or maybe i am missunderstanding the way to do this..

This is the part of the code where the array is set and the for each is set.

<?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.'_';
}

}
?>

Upvotes: 0

Views: 939

Answers (1)

ug_
ug_

Reputation: 11440

Its actually quite easy, use the % operator. a%b will return the remainder of a/b. heres how you use it

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

this will print out 0 1 2 0 1 2 0 1 2

You can then use this to create groups of 4 in your case.

Upvotes: 1

Related Questions