smarty数组中计算索引的值

时间:2011-11-29 14:23:53

标签: php arrays smarty

有没有办法计算数组括号内的索引?我会解释我的意思

我通过爆炸从php获得的字符串在Smarty中创建了一个数组。现在我想获得最后一个索引的值。所以我试过这个

{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 个答案:

答案 0 :(得分:2)

根据我的评论,我仍然首先建议在PHP中执行逻辑(或至少将数组分配给表示层而不是爆炸字符串)或编写插件或修饰符。

从您的代码中,您似乎想要获取字符串中的最后一项。我想你可以使用PHP的array_pop函数。

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