2012-03-05 2 views
6

foreach에 대한 현재 반복을 확인하고 어떤 작업을 수행하려면 어떻게해야합니까? smarty에서 반복을 확인하는 방법은 무엇입니까?

{foreach $new_products as $product name=foo} 
    {if $smarty.foreach.foo.iteration=5} 
     Do it! 
    {/if} 
{/foreach} 

이 항상 내가합니다 ( ==주의) 당신이 {if $smarty.foreach.foo.iteration == 5}을해야한다고 생각

+2

를'사용할 수 있습니다 {경우 $ 항목 @ 반복 == 5}'... – rodneyrehm

답변

9

을 선택하지 돌려줍니다.

+0

왜 이중 등호 조금 짧은? 그냥 === 너무 잘 작동하기 때문에 이해하려고. – loxyboi

+0

@loxyboi 두 개 또는 세 개의 등호를 사용할 수 있습니다 (3 개는 유형이 일치 함을 확인합니다 - http://php.net/manual/de/language.types.type-juggling.php 참조). 그러나 원래의 질문에는 오직 하나의 등호 만 있었는데, 그것은 틀 렸습니다. – apfelbox

+0

@apfelbox 오, 예, 이제는 그 것을 볼 수 있습니다. 질문에서 '='을 발견하지 못했습니다. 똑똑한 특정 규칙을 말하는 거라고 생각 했어. 감사! – loxyboi

6

이에 대한 대체 기술이 있다고 생각합니다. Smarty docs에서 예를 멋지게을 보여줍니다

{foreach $items as $i} 
    {if [email protected] eq 3} 
    {* put empty table row *} 
    <tr><td>nbsp;</td></tr> 
    {/if} 
    <tr><td>{$i.label}</td></tr> 
{/foreach} 

주 인덱스가 0부터 시작하는 인덱스 3 4 반복하므로.

0

멋지 3의 당신은 {$ 항목으로에서 foreach는 $}는 @iteration 재산

{foreach $new_products as $product} 
    {if [email protected] == 5} 
     Do it! 
    {/if} 
{/foreach} 
관련 문제