在Smarty模板中给出了这个:
<pre>{$user->settings['sendStats']|@print_r:1}</pre>
浏览器中的输出是:
Array
(
['period'] => daily
['ofPeriod'] => year
['points'] => 1000
)
执行以下任何操作:
<pre>{$user->settings['sendStats']['period']|@print_r:1}</pre>
<pre>{$user->settings['sendStats'][ofPeriod]|@print_r:1}</pre>
<pre>{$user->settings['sendStats'].points|@print_r:1}</pre>
<pre>{$user->settings.{'sendStats'}.{'period'}|@print_r:1}</pre>
<pre>{$user->settings.{sendStats}.{period}|@print_r:1}</pre>
有或没有|@print_r:1
在浏览器中没有输出。
我还尝试将$user->settings
分配给Smarty变量,并得到完全相同的结果(如预期的那样)。
如何访问$user->settings['sendStats']
数组的元素?
答案 0 :(得分:1)
{$user->settings.sendStats.period|@print_r:1}
应该可以正常工作。另请查看文档中的Variables页面...
答案 1 :(得分:0)
数组值本身不是数组(你的数组不是多维的),所以你应该删除|@print_r:1
,你应该没问题。应该看起来像:
<pre>{$user->settings['sendStats']['period']}</pre>
答案 2 :(得分:0)
终于明白了。数组键包含单引号,所以答案应该是:
{$user->settings['sendStats']["'period'"]}
我修复了它,所以键不再包含引号。