Предполагая, что вы пробежать $ Foo, который является массив с индексом и итерационные параметры
{foreach from=$foo item=bar name=humbug}
{$smarty.foreach.humbug.index}
{$smarty.foreach.humbug.iteration}
{/foreach}
Первый столбец являются результаты индекса, второй столбец результаты итерации
0 - 1
1 - 2
2 - 3
3 - 4
4 - 5
Это означает, что индекс начинается с 0 как его индекс массива, где, поскольку итерация представляет собой счетчик итераций цикла, который начинается с 1.
Экземпляр, в котором неправильное значение вызывает проблемы, заключается в отображении чего-либо в строках из 4 или любой другой суммы в таблице.
Использование индекс приведет к плохо выложенному столу. Вы получите немедленное изменение строки на первой итерации цикла (индекс 0), которая исправит себя на 5-й итерации (индекс 4), но только в пределах области текущего макета, то есть ваша первая строка будет иметь только 1 ячейку в Это. каждая другая строка имела бы 4 ячейки и данные в каждой ячейке после того, как первая строка появлялась в ячейках таблицы 4 позже, чем это должно было бы быть сделано.
{if $smarty.foreach.humbug.index is div by 4}
</tr><tr>
{/if}
Использование итерации бы раскладывать изменение строки должным образом не дает равные строки 4 до последней итерации цикла или Еогеасп.
{if $smarty.foreach.humbug.iteration is div by 4}
</tr><tr>
{/if}
После цикла foreach вы просто добавили бы строку таблицы ближе к завершающей строке.
Надеюсь, это поможет кому-то.
Но так как вы получите 'index' из цикла Еогеасп, вы имеете в виду, что на самом деле это просто на 1? – mario
@mario Да, это то, чего я хочу. – alex
Вы также можете просто использовать '{counter start = 1}' вместо индекса. – mario