嵌套数组如何正确使用smarty foreach(循环循环)
我不知道如何在smarty中循环我的数组,我已阅读文档,但有些原因,我只是可以把它正确的。我有一个数组的数组。第一个是“类别”,在类别中有数据的数组。嵌套数组如何正确使用smarty foreach(循环循环)
现在我想显示所有的类别名称与所有的项目,使用smarty。我的阵列看起来像这样:
Array
(
[catAddons] => Array
(
[0] => Array
(
[id] => 25
[name] => this is a addon group name
[group_categoryid] => 295
[group_description] =>
[group_optiontype] => single
[group_sort] => 0
[addons] => Array
(
[0] => Array
(
[addon_id] => 47
[addon_group_id] => 25
[addon_name] => bla
[addon_priceoption] => paid
[addon_purchaseprice] => 1.00
[addon_price] => 2.00
[addon_sort] => 0
)
[1] => Array
(
[addon_id] => 48
[addon_group_id] => 25
[addon_name] => nbalba
[addon_priceoption] => free
[addon_purchaseprice] => 0.00
[addon_price] => 0.00
[addon_sort] => 0
)
)
)
)
和IM这样做:
{foreach from=$catAddons.0 key=k item=i}
{$k} : {$i}
{if $k eq 'addons'}
{foreach from=$i.addons item=v}
{$v}
{/foreach}
{/if}
{/foreach}
第一$ & $ i的显示所以此工程的 “类别” 组的数据。但现在我想循环[addons]的内容,但第二个循环没有显示任何内容。当我删除if语句时,它显示Warning: Illegal string offset 'addons' in...
我该怎么做?
//编辑内容更新LOOP
{foreach from=$catAddons key=k item=i} <!-- ?? loop -->
{$k} : {$i}
{foreach from=$i key=k item=i} <!-- Group loop -->
{$k} {$i}
{/foreach}
{/foreach}
这一个显示所有组的数据..但随后插件这样表示附加组件:数组...但我不知道如何循环这个循环中
要遍历Smarty的关联数组,使用以下语法:
{foreach from=$assoc_arr key=k item=i}
{$k} : {$i}
{/foreach}
要通过数字索引(非关联的)循环阵列,使用以下:
{foreach from=$num_arr item=i}
{$i}
{/foreach}
所以,如果你有数字和关联数组的组合,你将不得不相应地向下潜入他们:
{foreach from=$catAddons item=x} <!-- numerically-indexed array -->
{foreach from=$x key=k item=i} <!-- associative array -->
<p>key: {$k} => item: {$i}</p>
{if $k eq 'addons'} <!-- access a nested array -->
{foreach from=$i item=ix} <!-- numerically-indexed array -->
{foreach from=$ix key=k2 item=v} <!-- associative array -->
<p>k2: {$k2} => value: {$v}</p>
{/foreach}
{/foreach}
{/if}
{/foreach}
{/foreach}
我最终在foreach构建中做了一些奇怪的部分...但它的工作..谢谢! – 2014-09-23 22:11:55
耶!有时嵌套的数据结构可能是一个真正的PITA ... – 2014-09-23 22:12:45
您使用的智者x或3 x? 3.x语法更容易... – 2014-09-23 21:22:26
2.6.3 ...我不能升级它不是我的网站 – 2014-09-23 21:25:11
好吧,只是发现它根本不工作...它显示的类别名称是实际[0]从数组中,所以它不会循环 – 2014-09-23 21:33:26