foreach
Summary
Iterates over arrays in different ways.Usage
{foreach <array> as [ $keyVar => ] $itemVar [ sequence <array> as $sequenceVar ] [ offset <offset> ] [ max <max> ] [ reverse ]} [ {delimiter}...{/delimiter} ] [ {break} ] [ {continue} ] [ {skip} ] {/foreach}
Description
This construct makes it possible to iterate over arrays in different ways. The loop can be tweaked using the parameters (see above).
Examples
Example 1
{foreach $objects as $object} {$object.name} <br /> {/foreach}
This example will print out the names of the objects that are stored in the $objects array. If this array stores 4 objects with the following names: "Emmett Brown", "Marty McFly", "Lorraine Baines" and "Biff Tannen", the following output will be produced:
Emmett Brown
Marty McFly
Lorraine Baines
Biff Tannen
Example 2
{foreach $objects as $index => $object} {$index} : {$object.name} <br /> {/foreach}
This example demonstrates how to create an iteration counter.
0: Emmett Brown
1: Marty McFly
2: Lorraine Baines
3: Biff Tannen
Example 3
{foreach $objects as $object sequence array( 'dark', 'light' ) as $style} <div class="{$style}">{$object.name}</div> {/foreach}
This example demonstrates how to create a loop where the iterations are displayed using alternating styles (in this case dark, light, dark, light and so on).
Balazs Halasy (22/02/2005 1:11 pm)
Balazs Halasy (17/11/2005 1:26 pm)
Comments
Other parameters?
Friday 08 July 2005 1:04:20 am
Mindshare Tech
Re: Other parameters?
Wednesday 13 July 2005 3:06:32 pm
Alimi Nabil
Take a look at this : http://ez.no/ez_publish/documenta...plate_functions/program_flow/section
The {foreach} statement is a replacement for the {section loop=..}.
Re: Other parameters?
Wednesday 05 April 2006 1:20:26 pm
Nathalie Grimaud
Determines the start of the loop array for the iterations, the value must be an integer.
max :
Determines the maximum number of iterations, the value must be an integer.
parameters
Monday 16 January 2006 3:20:37 pm
AtR
[ {break} ] guess this breakes out of the foreach ??
[ {skip} ] and this jumps to next element ?
[ {continue} ] ??
Re: parameters
Friday 08 September 2006 2:57:27 pm
Harry Oosterveen
Both {skip} and {continue} proceed with the next element, but if a {delimiter} is defined, it will be included after {continue}, but not after {skip}. See this example:
{let list = array( 1,2,3,4,5)}
<p>
{foreach $list as $var}
{delimiter}<br />{/delimiter}
{if $var|eq(2)}{skip}{/if}
{if $var|eq(4)}{continue}{/if}
{$var}
{/foreach}
</p>
{/let}
working without modulo
Monday 30 January 2006 7:45:55 pm
James Ward