我有一个 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 模板,所以我什至不知道从哪里开始。
任何想法将不胜感激!
此致
安迪·雅各布斯
编辑:在下面回复 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,您会看到该记录的第 4 个元素应输出“British Isles Europe”,但它只显示“array”。
希望这更有意义!
问候
安迪