2010-08-08 3 views
0

Это то, что я хотел бы сделать:сравнение числа с элементом массива в Smarty

Я присвоены следующие пункты:

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

«мест» является количество доступных мест. Это массив с одним элементом. В этом случае число 150, но динамическое. «взято» - это сиденья, которые уже сделаны и не должны отображаться. Это также массив с несколькими элементами в нем, например, movietitle, игровой день и т. Д. Возложенные места назначаются «seatnumber».

Мне нужно, чтобы smarty добавил foo 150 раз (в данном случае). Если номер места равен принятому номеру, то foo не следует добавлять.

Итак, подведем итоги. foo должен быть добавлен 150 раз в этом случае, но если это число равно одному из числа сидений в «взятом» массиве, оно должно быть пропущено.

Это то, что я пробовал:

{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} 

, но это не работает должным образом. Может кто-нибудь мне помочь?

+0

К сожалению, я не мог понять вещь, что вам нужно. О каком 'foo' вы говорите? Ваш код, похоже, пытается сделать что-то совершенно отличное от того, что вы описали. Кроме того, если '$ seat' является массивом, то что означает' loop = $ seat + 1'? Всегда ли в '$ seat' содержится только одно число? Тогда почему бы просто не получить это число из массива и работать с ним вместо добавления дополнительного цикла для массива с 1 номером? – serg

ответ

0

Было бы очень просто, если вы будете использовать это:

{foreach from=$taken item=tolate} 
    {if $tolate.seatnumber != $seats} 
      <p>{$tolate.seatnumber}</p> 
      <p>{$seats}</p> 
    {/if} 
{/foreach} 
Смежные вопросы