有没有办法计算数组括号内的索引?我会解释我的意思
我通过爆炸从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>
现在这是愚蠢的,因为我必须首先计算索引并在其中存储一个变量来使用它。我不能使用“即时生成索引”吗? 感谢。
答案 0 :(得分:2)
根据我的评论,我仍然首先建议在PHP中执行逻辑(或至少将数组分配给表示层而不是爆炸字符串)或编写插件或修饰符。
从您的代码中,您似乎想要获取字符串中的最后一项。我想你可以使用PHP的array_pop
函数。
{assign var='array' value=','|explode:$no}
<h1>{$array|@array_pop}</h1>