Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #16611

Re: break foreach loop after certain iteration and then start it

From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Newsgroups comp.lang.php
Subject Re: break foreach loop after certain iteration and then start it
Date 2016-03-05 02:28 +0100
Organization PointedEars Software (PES)
Message-ID <2056947.pXOX0CipXs@PointedEars.de> (permalink)
References <6586983f-c3bc-4eb7-92a3-6035952e8cbb@googlegroups.com> <56D946D4.9030504@arnowelzel.de>

Show all headers | View raw


Arno Welzel wrote:

> <?php
> $counter = 0;
> 
> foreach($mylist as $element)
        ^^
> {
>     // Do something with $element
> 
>     // Add something every three elements
>     $counter++;
>     if($counter==3)
       ^^
Flow control statements should not be written like function calls.

>     {
>         echo '<div id="logo"></div>';
>         $counter = 0;
>     }
> }

One does not have to reset the counter if one uses the modulo operator, %, 
to determine the indexes that are divisible by 3 without remainder.

  ++$counter;
  if ($counter % 3 === 0)
  {
    …
  }

or

  if (++$counter % 3 === 0)
  {
    …
  }

If the array is not associative and not sparse, the index is implicit and 
starting from 0, so no counter is needed.  0 is divisible by 3 without 
remainder, so one has to look for the remainder 2 for the third, sixth etc. 
element [2 ≡ 1 (mod 3)]:

  foreach ($mylist as $index => $element)
  {
    if ($index % 3 === 2)
    {
      …
    }
  }

Or, if this is too confusing,

    if (($index + 1) % 3 === 0)
    {
      …
    }

> ?>

Don’t.

-- 
PointedEars
Zend Certified PHP Engineer 
<http://www.zend.com/en/yellow-pages/ZEND024953> | Twitter: @PointedEars2
Please do not cc me. / Bitte keine Kopien per E-Mail.

Back to comp.lang.php | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

break foreach loop after certain iteration and then start it apoorv.kanungo@gmail.com - 2016-03-03 22:08 -0800
  Re: break foreach loop after certain iteration and then start it Arno Welzel <usenet@arnowelzel.de> - 2016-03-04 09:27 +0100
    Re: break foreach loop after certain iteration and then start it Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-03-05 02:28 +0100
      Re: break foreach loop after certain iteration and then start it Jerry Stuckle <jstucklex@attglobal.net> - 2016-03-04 21:32 -0500
      Re: break foreach loop after certain iteration and then start it Arno Welzel <usenet@arnowelzel.de> - 2016-03-05 10:52 +0100
        Re: break foreach loop after certain iteration and then start it Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-03-05 11:46 +0100
          Re: break foreach loop after certain iteration and then start it Tim Streater <timstreater@greenbee.net> - 2016-03-05 12:08 +0000
          Re: break foreach loop after certain iteration and then start it Arno Welzel <usenet@arnowelzel.de> - 2016-03-05 14:10 +0100
            Re: break foreach loop after certain iteration and then start it Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-03-05 17:55 +0100
          Re: break foreach loop after certain iteration and then start it Jerry Stuckle <jstucklex@attglobal.net> - 2016-03-05 08:50 -0500
            Re: break foreach loop after certain iteration and then start it Arno Welzel <usenet@arnowelzel.de> - 2016-03-06 10:57 +0100
              Re: break foreach loop after certain iteration and then start it Tim Streater <timstreater@greenbee.net> - 2016-03-06 11:26 +0000
              Re: break foreach loop after certain iteration and then start it Jerry Stuckle <jstucklex@attglobal.net> - 2016-03-06 10:12 -0500
                Re: break foreach loop after certain iteration and then start it Arno Welzel <usenet@arnowelzel.de> - 2016-03-06 22:48 +0100
                Re: break foreach loop after certain iteration and then start it Jerry Stuckle <jstucklex@attglobal.net> - 2016-03-06 20:49 -0500
                Re: break foreach loop after certain iteration and then start it "Christoph M. Becker" <cmbecker69@arcor.de> - 2016-03-07 16:28 +0100
                Re: break foreach loop after certain iteration and then start it Jerry Stuckle <jstucklex@attglobal.net> - 2016-03-07 12:38 -0500
                Re: break foreach loop after certain iteration and then start it Arno Welzel <usenet@arnowelzel.de> - 2016-03-07 17:42 +0100
                Re: break foreach loop after certain iteration and then start it Jerry Stuckle <jstucklex@attglobal.net> - 2016-03-07 12:39 -0500
                Re: break foreach loop after certain iteration and then start it Arno Welzel <usenet@arnowelzel.de> - 2016-03-09 08:18 +0100
                Re: break foreach loop after certain iteration and then start it "Christoph M. Becker" <cmbecker69@arcor.de> - 2016-03-09 10:05 +0100
                Re: break foreach loop after certain iteration and then start it Jerry Stuckle <jstucklex@attglobal.net> - 2016-03-09 08:56 -0500
  Re: break foreach loop after certain iteration and then start it "R.Wieser" <address@not.available> - 2016-03-04 09:34 +0100

csiph-web