在smarty中访问php数组

amo*_*era 4 php smarty

我有一个像这样的方法的对象:$foo->getId()返回一个integer,我有一个像这样的数组:

$array(
     1=> array(
            "parent_id" => 14
     ),
     2=> array(
            "parent_id" => 15
     )
);
Run Code Online (Sandbox Code Playgroud)

我需要parent_id使用$foo->getId()as索引键在smarty中访问子数组$array,例如:

{$array[$foo->getId()].parent_id}
Run Code Online (Sandbox Code Playgroud)

也尝试过:

{$array[$foo->getId()]}
Run Code Online (Sandbox Code Playgroud)

但两者都返回错误:

syntax error: unidentified token 
Run Code Online (Sandbox Code Playgroud)

我做得不对劲?

Fel*_*ing 7

你可以试试:

{$array.$foo->getId().parent_id}
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,我认为你必须事先将ID分配给另一个变量:

{assign var=foo_id value=`$foo->getId()`}{$array.$foo_id.parent_id}
Run Code Online (Sandbox Code Playgroud)

在Smarty 3中,这应该有效:

{$array.{$foo->getId()}.parent_id}
Run Code Online (Sandbox Code Playgroud)