2011-05-12 52 views
2

我有一个数组智者数组索引

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中访问array ['foo_1']?你能帮忙吗?

+0

我不是一个PhP程序员,但不是一个散列,而不是一个数组? – zellio 2011-05-12 13:49:35

+0

@Mimisbrunnr一个HashTable在PHP中被称为数组;) – elslooo 2011-05-12 13:55:48

+0

你的意思是一个哈希表?在PHP中,没有像JAVA那样的散列表。但是数组是一种哈希表是不是? – alagar 2011-05-12 13:58:25

回答

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_下。