En supposant que vous exécutez par foo $, ce qui est un tableau avec les options d'index et l'itération
{foreach from=$foo item=bar name=humbug}
{$smarty.foreach.humbug.index}
{$smarty.foreach.humbug.iteration}
{/foreach}
La première colonne sont les résultats de l'indice, la deuxième colonne sont les résultats d'itération
0 - 1
1 - 2
2 - 3
3 - 4
4 - 5
Cela signifie que l'index commence à 0 en tant qu'indice de tableau, alors que l'itération est le nombre d'itérations de la boucle qui commence à 1.
Une instance dans laquelle l'utilisation d'une valeur incorrecte entraînerait des problèmes consiste à afficher quelque chose dans des lignes de 4 ou toute autre quantité dans une table.
L'utilisation de index provoquerait une table mal agencée. Vous obtiendrez un changement de ligne immédiat sur la première itération de la boucle (index 0) qui se corrigera à la 5ème itération (index 4) mais uniquement dans le cadre de la disposition actuelle, ce qui signifie que votre première rangée ne comportera qu'une seule cellule il. chaque autre rangée aurait 4 cellules et les données dans chaque cellule après la première rangée apparaîtraient dans les cellules de la table 4 plus tard que ce qu'elle devrait faire.
{if $smarty.foreach.humbug.index is div by 4}
</tr><tr>
{/if}
utilisant itération définirait le changement de ligne donnant correctement rangées égales de 4 jusqu'à ce que la dernière itération ou la boucle foreach. Après la boucle foreach, vous devez simplement ajouter une ligne de table plus proche pour terminer la dernière ligne.
J'espère que cela aide quelqu'un.
Mais puisque vous obtenez 'index' de la boucle foreach, vous voulez dire que c'est juste par 1 en fait? – mario
@mario Ouais, c'est ce que je veux. – alex
Vous pouvez également utiliser '{counter start = 1}' à la place de l'index. – mario