раздел с массивом гнезд в smarty - PullRequest
0 голосов
/ 06 февраля 2010
Array
(
    [0] => Array
        (
            [0] => SimpleXMLElement Object
                (
                    [0] => Pop music
                )

            [1] => SimpleXMLElement Object
                (
                    [0] => Rock music
                )

            [2] => SimpleXMLElement Object
                (
                    [0] => Music edition
                )

        )

    [1] => Array
        (
            [3] => SimpleXMLElement Object
                (
                    [0] => Pop music
                )

            [4] => SimpleXMLElement Object
                (
                    [0] => Rock music
                )

            [5] => SimpleXMLElement Object
                (
                    [0] => Opera music
                )

        )

    [2] => Array
        (
            [6] => SimpleXMLElement Object
                (
                    [0] => Advs music
                )

            [7] => SimpleXMLElement Object
                (
                    [0] => Rington
                )

            [8] => SimpleXMLElement Object
                (
                    [0] => Game 
                )
        )

)

У меня есть массив, как указано выше, но я не знаю, как зациклить его с помощью foreach или section в smarty. Кто-нибудь может мне помочь? Я провожу время для этого, поэтому, пожалуйста, дайте мне некоторую идею. В любом случае, спасибо !!

Ответы [ 2 ]

0 голосов
/ 08 февраля 2010
{foreach from=$menu key=k item=v name=menu}
    {if $smarty.foreach.menu.index == 0}
        VietMusic
    {/if}
    {if $smarty.foreach.menu.index == 1}
        ForeignMusic
    {/if}
    {if $smarty.foreach.menu.index == 2}
        SpecialMusic
    {/if}
        {foreach from=$v item=submenu}
             {$submenu}
        {/foreach}
    {/foreach}

Я выписываю свой массив таким образом, но он не оптимизирован. Кто-нибудь дает другую идею для этого?

Наконец-то я могу это сделать,

{foreach from=$menu key=k item=v name=menu}
    {foreach from=$v item=submenu name=sub}
        {if $smarty.foreach.sub.first}
            {$submenu}
        {else}
            {$submenu}
        {/if}
    {/foreach}
{/foreach}
0 голосов
/ 06 февраля 2010

Вы можете делать вложенные операторы foreach

foreach($array as $childArray)
{
    foreach($childArray as $obj)
    {
        echo $obj->0;
    }
}

Хотя я не уверен, что переменные имеют правильное имя, если у них есть число в первом символе, поэтому вам может потребоваться получить к нему доступ, используя скобки

$obj->{0};
...