聪明的数组索引

时间:2011-05-12 13:45:42

标签: php arrays indexing smarty

我有一个数组

array('foo_1' => 1, 'bar_1' =>1, 'foo_2' => 2, 'bar_2' => 2, ... )

for($i = 1; $i<=12; $i++){
    echo $month['foo_'.$i];
}

我不明白如何使用Smarty访问它的值。

{counter start=0 skip=1 assign="i"}
 {section name = month start = 0 loop = 12 step = 1}
  {if isset($arr.foo_.$i)}
   {$arr.bar_$i}
  {/if}
  {counter}
 {/section}

但它不起作用。主要问题是 - 如何在smarty中访问数组['foo_1']?你能帮忙吗?

1 个答案:

答案 0 :(得分:2)

在访问数组之前,必须先构建密钥。使用assign来构建完整的名称。

{assign var=fooKey value="foo_"|cat:$i}
{assign var=barKey value="bar_"|cat:$i}
{if isset($arr.{$fooKey})}
  {$arr.{$barKey}}
{/if}

您的尝试{$arr.foo_.$i}表示访问$i下数组中的子标记$arr.foo_