我有一个Smarty数组,数组中的一些元素也是数组。我在这里处理别人的代码,我必须在输出中插入一些额外的位,这样我就不能只循环遍历数组并输出结果。
我正在使用的代码是:
{foreach from=$setall item=item}
{if $item.req_type != 6}
{if $item.attr_value}
<div class="detailed_line" >
<p>
<label>{$item.name}</label>
{$item.attr_value|JView:$item.attr_id:$data->id:$item.type:$item.req_type}
</p>
</div>
{/if}
{/if}
{/foreach}
因此,我可以使用以下方法获取单个值:
{$setall.5.attr_value}
但如果其中一个值是另一个数组,那么我不确定如何循环它并输出值。
这是我第一次涉足Smarty模板,所以我甚至不知道从哪里开始。
任何想法都会感激不尽!
祝你好运
Andy Jacobs
编辑:回复下面的periklis答案:
谢谢你。我试着对它进行了微妙的改动:
{foreach name = "loop" from=$setall.0 item="item" key="key"}
{if is_array($item)}
{foreach name = "inner_loop" from=$item item="inner_item" key="inner_key"}
Inner item:{$inner_item}<br />
{/foreach}
{else}
Outer item:{$item}<br />
{/if}
{/foreach}<br />
所以,对于初学者来说,我只是想在主阵列的第一个位置输出数组。这就是我得到的:
http://j412.workinprogress.co.uk/component/jomdirectory/23-Friendship-Travel
您可以在顶部看到默认输出的数据。我需要做的是在setall数组中显示一些值,然后显示描述,然后显示setall的其余部分。
例如,如果你看一下Destinations,你会发现这条记录的第四个元素应该输出'British Isles Europe',但它只是说'array'。
希望更有意义!
此致
安迪
答案 0 :(得分:0)
尝试这样的事情:
{foreach name = "loop" from=$setall item="item" key="key"}
{if is_array($item)}
{foreach name = "inner_loop" from=$item item="inner_item" key="inner_key"}
Inner item:{$inner_item}
{/foreach}
{else}
Outer item:{$item}
{/if}
{/foreach}