2012-06-19 25 views
1

我只想知道如何訪問SMARTY中通過smarty生成索引的數組。我想稍後訪問它。smarty中的動態數組鍵

得到了這樣的事情:

{if $smarty.get.{param_{$k.id}_{$p.num}} eq $key} 

,我喜歡訪問$smarty.get.(dynamic generated index)

嘗試了變化,但沒有任何運氣。

+0

現在工作。當我得到答案時,我會接受它。 –

+0

您嘗試過{$ smarty.get [$ your_var]}嗎? – madfriend

+0

@neosatan檢查我的答案。 –

回答

2

你可以使用變量作爲索引,但是你不能按照你的方式創建字符串。嘗試建立一個自定義變量之前:

{$myIndex = "param_{$k.id}_{$p.num}"} 
{if $smarty.get.$myIndex eq $key} 
    ... 

這應該工作。

+0

它沒有給出錯誤,但var似乎是空的...必須檢查我的代碼中是否有某種錯誤。 –

+0

工程就像一個魅力。仍然想知道爲什麼當我在外部創建字符串時它很順利,但是當我想在實際索引中構建字符串時,它會失敗。 –

+0

我認爲這是設計。你的代碼不是有效的Smarty語法。 –

0

這也將工作

{if $smarty.get["param_{$k.id}_{$p.num}"] eq $key} 
    ... 
1

在我來說,我用UnLoCo解決方案,並試圖直接訪問數組的內容(沒有if語句)與動態密鑰,它完美的作品:

{$arr1["column_{$arr2.month}_price"]} 
+0

證實,在PS 1.6.1.12'{$ myVar [「keybase _ {$ i}」]}'的作品。 –