从阵列中的Smarty数组获取数据

时间:2012-04-22 19:02:36

标签: arrays smarty

我有一个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'。

希望更有意义!

此致

安迪

1 个答案:

答案 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}