Smarty Вложенный вопрос цикла foreach - PullRequest
0 голосов
/ 24 августа 2010

У меня проблемы с отображением массива ниже в файле шаблона smarty. Если кто-то может помочь мне указать верное направление, я был бы очень благодарен.

мой код шаблона выглядит так:

          {foreach from=$trackingGroups item=gender key=k item=v}
          {assign var=tc value="`$v.id`"}    
          {$v.title} ({$v.productCount})<br />

{foreach item = отдел от = $ trackingGroups. $ Tc item = v2} {$ v2.title}
{/для каждого} {/ *} Еогеасп 1006 *

но страница отображается так:

          Women (3)<br />
           W<br />
                    7<br />
                    3<br />
                    Footwear<br />
                    Accessories<br />

          Men (2)<br />
           M<br />
                    7<br />
                    2<br />
                    Footwear<br />




Array

( [71] => Массив ( [title] => Женщины [id] => 71 [productCount] => 3 [171] => Массив ( [id] => 171 [title] => Обувь [productCount] => 2 [74] => Массив ( [id] => 74 [title] => Сапоги [productCount] => 2 )

            )

        [172] => Array
            (
                [id] => 172
                [title] => Accessories
                [productCount] => 1
                [74] => Array
                    (
                        [id] => 74
                        [title] => Boots
                        [productCount] => 1
                    )

            )

    )

[72] => Array
    (
        [title] => Men
        [id] => 72
        [productCount] => 2
        [171] => Array
            (
                [id] => 171
                [title] => Footwear
                [productCount] => 2
                [74] => Array
                    (
                        [id] => 74
                        [title] => Boots
                        [productCount] => 2
                    )

            )

    )

)

1 Ответ

0 голосов
/ 31 августа 2010

Когда вы зацикливаетесь на своем втором foreach, вы перебираете все элементы, а не только клавиши title. Например:

{foreach item=department from=$trackingGroups.72 item=v2} 
   {$v2.title}
{/foreach}

в этом случае $ v2 примет следующие значения:

[title] => Men
[id] => 72 
[productCount] => 2 
[171] => Array 
 ( 
                [id] => 171 
                [title] => Footwear 
                [productCount] => 2 
                [74] => Array 
                    ( 
                        [id] => 74 
                        [title] => Boots 
                        [productCount] => 2 
                    ) 

 ) 

Первое, второе и третье значение будет только строкой. Поскольку это не массив, $ v2.title вернет элемент title (первый), возвращая первый символ: M, 7,2 Четвертый элемент - это массив с ключом title, и он возвращается правильно: Footwear.

...