【发布时间】:2012-04-22 19:02:35
【问题描述】:
我有一个 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”。
希望这更有意义!
问候
安迪
【问题讨论】:
-
也许值实际上是“数组”而不是数组?这就是输出下方的代码所建议的。
-
我不确定这会是怎样的结果,因为顶部的输出是正确的,因此目的地的值必须是“不列颠群岛欧洲”。
-
你能在 $setall 中对你要打印的数组做一个 var_dump 吗?