Suponiendo que se ejecuta a través $ foo que es una matriz con las opciones de índice y de iteración
{foreach from=$foo item=bar name=humbug}
{$smarty.foreach.humbug.index}
{$smarty.foreach.humbug.iteration}
{/foreach}
La primera columna son los resultados del índice, la segunda columna son los resultados de iteración
0 - 1
1 - 2
2 - 3
3 - 4
4 - 5
Esto significa que el índice comienza en 0 como su índice de matriz, donde como la iteración es el recuento de iteración de bucle que comienza en 1.
Una instancia donde usar el valor incorrecto causaría problemas es mostrar algo en filas de 4 o cualquier otra cantidad en una tabla.
El uso de índice provocaría una mesa mal diseñada. Obtendrá un cambio de fila inmediato en la primera iteración del ciclo (índice 0) que se corregirá en la quinta iteración (índice 4) pero solo dentro del alcance del diseño actual, lo que significa que su primera fila solo tendrá 1 celda eso. cada otra fila tendría 4 celdas y los datos en cada celda después de la primera fila aparecerían en la tabla 4 celdas más tarde de lo que debería estar haciendo.
{if $smarty.foreach.humbug.index is div by 4}
</tr><tr>
{/if}
El uso de iteración sería disponer el cambio de fila dando adecuadamente filas iguales de 4 hasta la última iteración o el bucle foreach.
{if $smarty.foreach.humbug.iteration is div by 4}
</tr><tr>
{/if}
Después de que el bucle foreach sólo tendría que añadir una fila de tabla más cerca de completar la última fila.
Espero que esto ayude a alguien.
Pero ya que tienes 'index' del bucle foreach, ¿Quieres decir que está justo en 1 en realidad? – mario
@mario Sí, eso es lo que quiero. – alex
También podría usar '{counter start = 1}' en lugar del índice. – mario