Smarty语法错误:变量中的变量

时间:2015-07-02 15:41:04

标签: php arrays smarty

我和Smarty有问题。我要引用一个带有特定键的数组。让我解释。此字符串包含我想要的

{$array1.something[$key].id}

同时另一个包含

{$array2.something[$key].id}

我希望以这种方式结合它们:

{$array1.something[$array2.something[$key].id].id}

相信我,它在PHP中完美运行,但我无法在Smary中翻译这个逻辑,因为它给了我一个致命的错误。

  

致命错误:Smarty错误 - 语法错误:无法识别的标签:$ array1.something [$ array2.something [$ key] .id] .id(Smarty_Compiler.class.php,第448行),位于Smarty.class.php上第1094行

让我试着通过一个例子让它变得更加简单。

1. {$array2.something[$key].id} returns 18 (the key)
2. {$array1.something[$array2.something[$key].id].id} then would be {$array1.something[18].id} 
3. {$array1.something[18].id} should return 999 (the value) but instead of this it gives me a fatal error

如您所知,这只是一个语法错误。我该怎么写这个陈述?

1 个答案:

答案 0 :(得分:0)

检查{assign} http://www.smarty.net/docs/en/language.function.assign.tpl

make keyVal = 18

{assign "keyVal" $array1.something[$key].id}

然后输出您想要的值

{$array1.something[$keyVal].id}