2011-05-12 13 views
2

は、私は、配列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} 

しかし、動作しません。主な問題は、どのように私は配列['foo_1']にアクセスできますか?あなたは助けてもらえますか?

+0

私はPhPプログラマーではありませんが、配列ではなくハッシュではありませんか? – zellio

+0

@Mimisbrunnr HashTableはPHPで配列と呼ばれます; – elslooo

+0

ハッシュテーブルを意味しますか? PHPでは、JAVAのようなハッシュテーブルはありません。しかし、配列はハッシュテーブルのようなものですか? – alagar

答えて

2

キーを配列でアクセスする前に構築する必要があります。割り当てを使用して完全な名前を作成します。 $arr.foo_下のアレイにサブキー$iにアクセス

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

あなたの試み{$arr.foo_.$i}手段。

関連する問題