我有一个$ period var,定义为:
Array
(
[2012-03-09] => Array
(
[3] => Array
(
[group] => 1
[color] => #00FF00
)
)
[2012-03-07] => Array
(
[3] => Array
(
[group] => 2
[color] => #00FF00
)
)
)
我使用smarty,如果密钥存在,我想打印值,然后迭代所有数据:
{if array_key_exists($jour->nameMysql(), $periods)}
{foreach from=$periods[$jour->nameMysql()] item=periodsdf}
{$periodsdf}
{/foreach}
{/if}
键由函数 $ jour-> nameMysql()的结果返回。代码的第一部分正在工作(array_key_exists但foreach不起作用。它挂起,我没有错误消息或警告
我已经尝试通过 {foreach from =“$ periods。{$ jour-> nameMysql()}”item = periodsdf} 来改变foreach,但它不起作用。
我还尝试将$ jour-> nameMysql()分配给var并使用该var但它不起作用
你可以帮助我让它发挥作用吗?修改
此代码提供我想要的结果
{php}
$periods = $this->get_template_vars('periods');
$jour = $this->get_template_vars('jour');
$this->assign('period', $periods[$jour->nameMysql()]);
{/php}
{foreach from=$period item=per}
<div style='color: {$per.color}'>{$per.group}</div>
{/foreach}
如果我找到了聪明的语法......那很好
谢谢
答案 0 :(得分:0)
{$key = $jour->nameMysql()}
{if array_key_exists($key, $periods)}
{foreach from=$periods.$key item=periodsdf}
{$periodsdf}
{/foreach}
{/if}
或
{if isset($periods.$key)}
{foreach from=$periods.$key item=periodsdf}
{$periodsdf}
{/foreach}
{/if}