2010-08-08 26 views
0

Voilà ce que je voudrais faire:la comparaison d'un numéro avec un élément de tableau dans Smarty

J'ai attribué les éléments suivants:

$smarty->assign('seats', $aantalStoeltjes); 
$smarty->assign('taken', $bezetArray); 

« sièges » est le nombre de places disponibles. Ceci est un tableau avec un seul élément. Le nombre 150 dans ce cas mais est dynamique. "pris" correspond aux sièges déjà pris et ne doivent pas être affichés. C'est aussi un tableau avec plusieurs éléments dedans comme le movietitle, le jour de jeu, etc. Les sièges pris sont assignés à "numéro de siège".

Ce dont j'ai besoin est de laisser smarty ajouter foo 150 fois (dans ce cas). Si le numéro du siège est égal au nombre pris, le foo ne doit pas être ajouté.

Donc, pour résumer. foo devrait être ajouté 150 fois dans ce cas, mais si le nombre est égal à l'un des numéros de siège dans le tableau "pris", il devrait être sauté.

C'est ce que j'ai essayé:

{section start=1 loop=$seats+1 step=1} 
    {foreach from=$taken item=tolate} 
     {if $smarty.section.seats.index != $tolate.seatnumber} 
     <p>{$tolate.seatnumber}</p> 
     <p>{$smarty.section.seats.index}</p> 
     {/if} 
    {/foreach} 
{/section} 

mais cela ne fonctionne pas correctement. Quelqu'un peut-il m'aider?

+0

Désolé je ne pouvais pas comprendre une chose que vous avez besoin. De quel «foo» parlez-vous? Votre code semble essayer de faire quelque chose de complètement différent de ce que vous avez décrit. Aussi, si '$ seats 'est un tableau, que veut dire' loop = $ seats + 1'? Est-ce que '$ seats 'contient toujours un seul numéro? Alors pourquoi ne pas simplement obtenir ce nombre d'un tableau et travailler avec lui au lieu d'ajouter une boucle supplémentaire pour un tableau avec 1 numéro? – serg

Répondre

0

Il serait beaucoup plus simple si vous utilisez ceci:

{foreach from=$taken item=tolate} 
    {if $tolate.seatnumber != $seats} 
      <p>{$tolate.seatnumber}</p> 
      <p>{$seats}</p> 
    {/if} 
{/foreach}