Display content (only once) after X repetitions in PHP

Asked

Viewed 224 times

0

I have the following code:

<?php do { ?>
<div>Área que desejo repetição</div>
<?php } ?>

I would like an extra piece of content to be displayed after 2 reps. Only after 2 reps and not every 2 reps.

Output example:

<div>Área que desejo repetição</div>
<div>Área que desejo repetição</div>
<div>Área do conteúdo EXTRA</div>
<div>Área que desejo repetição</div>
<div>Área que desejo repetição</div>
<div>Área que desejo repetição</div>
...

PS: I’ve asked a similar question before but I haven’t been able to adapt to this scenario. Thank you.

  • 2

    if ($contador == 2) { echo '<div>ABC</div>'; } $contador++;

2 answers

2

Just check which one I skip this loop.

Go through the amount needed, with a if you check which current level and execute what you want.

<?php

$nivel = 1; // vamos começar pelo nível 1

while ($nivel <= 10 /* vamos percorrer 10 niveis */) {

   /* se o nivel for o segundo, ou seja,
   loop ter sido executado duas vezes já
   ele irá executar esta parte do código */

   if($nivel == 2){ 
      // do something...        
   }

  echo $nivel++;  /* vamos imprimir o nivel atual */
}

Example: http://sandbox.onlinephpfunctions.com/code/98eda8a46d13828330bd3a69fa0d410f6f64924b

1

You can use a loop for or while for repeats and use a if to check the position of the counter with the rray placed in the comments:

Example for for:

<?php for ($i=0; $i <$repetições ; $i++): ?>
    <div>Área que desejo repetição</div>
    <?php if ($i == 2):?>
        <div>Área do conteúdo EXTRA</div>
    <?php endif;?>
<?php endfor; ?>

Example with while:

<?php $i = 0; ?>                    
<?php while ($i <= $repetições): ?>                 
    <div>Área que desejo repetição</div>
    <?php if ($i == 2):?>
        <div>Área do conteúdo EXTRA</div>
    <?php endif;?>      
    <?php $i++;?>       
<?php endwhile; ?>  

See which one fits your problem best.

Any doubt is just talk.

Att;

Browser other questions tagged

You are not signed in. Login or sign up in order to post.