Умная проверка, соответствует ли id определенным числам

Что у меня есть: оператор if, который проверяет, равен ли идентификатор страницы идентификатору cms, у меня нет опыта работы с умным кодом. Поэтому я точно не знал, как решить мою проблему.

{if $cms->id eq 10}
   {* Do Something *}
{/if}

Что я хочу: у меня есть массив с несколькими идентификаторами страниц, и он проверяет, соответствует ли один из этих идентификаторов {$cms->id}. Надеюсь, понятно, что я имею в виду. Ниже я добавил некоторый php-код, который делает то же самое, только я могу заставить его работать в Smarty.

$numbers = array(10,20,30,40,50,60);
if(in_array($cms->id, $numbers, true)){
    /* do something */
}

person Paul    schedule 09.12.2014    source источник
comment
ты пробовал -› {if in_array( $cms->id, array(10,20,30,40,50,60))) } {* Do Something *} {/if}   -  person Sean    schedule 09.12.2014
comment
@Sean - Да, я пробовал это, но, к сожалению, это тоже не работает.   -  person Paul    schedule 09.12.2014


Ответы (2)


Вы можете использовать in_array

Пытаться

{if in_array($cms->id, $array)}
    {* some template *}
{/if}

$array должен быть назначен шаблону, создание массива внутри шаблона невозможно с помощью Smarty

person mleko    schedule 09.12.2014
comment
Я использовал ваш код, и он делает именно то, что я хочу. Спасибо дал вам голос вверх - person Paul; 10.12.2014
comment
я рад, что смог помочь - person mleko; 10.12.2014

Вы можете использовать функцию substr_count()

{if substr_count($arrayString, $subString)}
    do Something
{/if}

Документ по адресу: документ Php

person IT Vlogs    schedule 10.12.2014
comment
Спасибо за ответ - person Paul; 10.12.2014