您将如何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