您將如何a)修復PHP中的Smarty數組,並b)將結果返回到Smarty數組變量中?按摩PHP中的Smarty數組並將其發送回Smarty。 。 。?
你有沒有研究過一個問題,你認爲你接近解決問題,但目標不斷滑落得越來越遠?我花了半天的時間閱讀文檔,尋找例子......但我必須錯過一些非常基本的東西。
前提條件:我有一個Smarty數組有重複的條目(現在我不能改變創建的方式,因爲Smarty代碼是在模板中編碼的)。這會導致問題,因爲現在我爲購物車中的同一產品獲取多個條目。現在,我真的不能改變這個如何放在一起的邏輯。
這裏就是我的了:
Smarty:
{$products}
在我的情況下,{$產品}包含四項像這樣:
array(1) { [0]=> array(12) { ["pid"]=> string(2) "13" ["domain"]=> NULL
["billingcycle"]=> string(4) "free" ["configoptions"]=> string(0) ""
["customfields"]=> array(0) { } ["addons"]=> array(0) { } ["server"]=> string(0) ""
["productinfo"]=> array(9) { ["pid"]=> string(2) "13" ["gid"]=> string(1) "2"
["type"]=> string(5) "other" ["groupname"]=> string(13) "Beta Products" ["name"]=>
string(44) "BetterStuff "Free Until 2014" Beta" ["description"]=> string(21)
"BetterStuff installer" ["freedomain"]=> string(0) "" ["freedomainpaymentterms"]=>
array(1) { [0]=> string(0) "" } ["freedomaintlds"]=> array(1) {[0]=> string(0) ""}}
["allowqty"]=> string(1) "0" ["qty"]=> int(1) ["pricing"]=> array(4) { ["baseprice"]=>
string(9) "$0.00 USD" ["setup"]=> string(9) "$0.00 USD" ["recurring"]=> array(0){}
["totaltoday"]=> string(9) "$0.00 USD" } ["pricingtext"]=> string(5) "FREE!" } }
在PHP中,我可以很容易地使用陣列獨特,得到擺脫這個數組中的3個精確副本,並且只剩下一個(就像我剛剛在上面展示的那樣)。在PHP中,var_dump($ var)包含一個數組項(就像我上面展示的那樣),這完美地工作。在PHP中,當我用is_array檢查$ var時,結果是真的。
回到Smarty,{$ newproducts}是NULL。
當我試圖重新分配原來的Smarty的數組{$}產品,我得到 關於沒有被允許爲字符串值添加到 陣列的錯誤消息。
當我試圖打印出{$新品推薦| @count},我得到0,這是 輕微; Y混亂給我,因爲我相信,智能陣列從1開始 ,而PHP數組是從零開始的。
因此,雖然PHP認爲我分配的變量是 的值,但是新變量是一個數組,它不會作爲一個數組進入Smarty。
我在做什麼錯在這裏?我是否需要以某種方式爆炸或拆分我的PHP數組,以便我可以將它變成Smarty變量?
我該如何將Smarty中的原始{$ products}數組重置爲新的唯一數組值?
有人嗎?
也許我錯了,但不是這個簡單的工作? ''{products | array_unique}' – sofl 2012-07-20 15:15:47
嗯,就「清理」數組中重複/一式三份相同的項目而言,這並不起任何作用。非常感謝您抽出時間。 – Ace 2012-07-20 16:06:21