1

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

希望这更有意义!

问候

安迪

4

1 回答 1

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}
于 2012-04-23T08:06:20.670 回答