Zakładając, że prowadzony przez $ foo, który jest tablicą z opcji indeksowych i iteracji
{foreach from=$foo item=bar name=humbug}
{$smarty.foreach.humbug.index}
{$smarty.foreach.humbug.iteration}
{/foreach}
W pierwszej kolumnie są wyniki Indeksu, druga kolumna są wyniki iteracji
0 - 1
1 - 2
2 - 3
3 - 4
4 - 5
Oznacza to, że indeks zaczyna się od 0 jako indeks tablicy, gdzie w iteracji jest liczba iteracji pętli rozpoczynająca się od 1.
Instancja, w której użycie niewłaściwej wartości spowodowałoby problemy, powoduje wyświetlenie czegoś w wierszach 4 lub dowolnej innej wielkości w tabeli.
Korzystanie z indeksu spowodowałoby źle rozłożoną tabelę. Otrzymasz natychmiastową zmianę wiersza w pierwszej iteracji pętli (indeks 0), która poprawiłaby się w piątej iteracji (indeks 4), ale tylko w zakresie bieżącego układu, co oznacza, że twój pierwszy wiersz miałby tylko 1 komórkę w to. każdy inny wiersz miałby 4 komórki, a dane w każdej komórce po pierwszym wierszu pojawiłyby się w komórce tabeli 4 później niż powinno.
{if $smarty.foreach.humbug.index is div by 4}
</tr><tr>
{/if}
Korzystanie iteracja byłoby rozłożyć zmianę wiersza prawidłowo dając równe rzędy 4 do ostatniej iteracji lub pętli foreach.
{if $smarty.foreach.humbug.iteration is div by 4}
</tr><tr>
{/if}
Po pętli foreach wystarczy dodać wiersz tabeli bliżej, aby ukończyć ostatni wiersz.
Mam nadzieję, że to pomoże komuś.
Ale skoro masz 'index' z pętli foreach, masz na myśli, że to jest po prostu od 1? – mario
@mario Tak, właśnie tego chcę. – alex
Można również użyć '{counter start = 1}' zamiast indeksu. – mario