значение вычисляемого индекса в массиве smarty - PullRequest
0 голосов
/ 29 ноября 2011

Есть ли способ расчета индекса в скобках массива?Я объясню, что я имею в виду

Я создал массив в Smarty, взорвав строку, полученную из php.Теперь я хочу получить значение по последнему индексу.Итак, я попробовал это

{assign var='array' value=','|explode:$no}     //$no is the comma separated string
<h1>{$array[$array|@count]}</h1>               //this should be a blank value because i am going past the last index

это дало мне ошибку Fatal error: Smarty error: [in categories.tpl line 8]: syntax error: unrecognized tag: $array[$array|@count]

, затем я попытался

{assign var='array' value=','|explode:$no}     //$no is the comma separated string
{assign var='c' value=$array|@count}
<h1>{$array[$c-1]}</h1>                        //$c is the count    

это дало вам следующую ошибку Fatal error: Smarty error: [in categories.tpl line 8]: syntax error: unrecognized tag: $array[$c-1]

Наконец код, который сработал, был таким:

{assign var='array' value=','|explode:$no}
{assign var='c' value=$array|@count}
{assign var='c1' value=$c-1}
<h1>{$array[$c1]}</h1>

Теперь это глупо, потому что я должен сначала вычислить индекс и сохранить в нем переменную, чтобы использовать его.Не могу ли я использовать " на лету сгенерированный индекс "?Благодаря.

1 Ответ

2 голосов
/ 29 ноября 2011

Согласно моему комментарию, я все же сначала рекомендую сделать логику (или, по крайней мере, назначить массив для уровня представления вместо взрыва строки) в вашем PHP или написать плагин или модификатор.

Из вашего кода кажется, что вы хотите получить последний элемент в строке. Я думаю, вы можете использовать функцию PHP array_pop.

{assign var='array' value=','|explode:$no}
<h1>{$array|@array_pop}</h1>
...