2013-04-02 3 views
1

Я застрял в этой многомерной обработке массива в smarty (для более точного определения prestashop).Итерация через многомерную матрицу в smarty

У меня возникают проблемы, повторяющиеся через все элементы.

Это мой массив, print_r-ed.

(
    [0] => Array 
     (
      [superorder] => 1 
      [basket] => Array 
       (
        [0] => Array 
         (
          [product_name] => iPod shuffle 
          [position_left] => 37 
          [position_top] => 73 
          [order] => 1 
         ) 

        [1] => Array 
         (
          [product_name] => iPod touch 
          [position_left] => 5 
          [position_top] => 66 
          [order] => 2 
         ) 

        [2] => Array 
         (
          [product_name] => iPod Nano 
          [position_left] => 67 
          [position_top] => 49 
          [order] => 3 
         ) 

       ) 

     ) 

    [1] => Array 
     (
      [superorder] => 2 
      [basket] => Array 
       (
        [0] => Array 
         (
          [product_name] => iPod shuffle 
          [position_left] => 37 
          [position_top] => 73 
          [order] => 1 
         ) 

        [1] => Array 
         (
          [product_name] => iPod touch 
          [position_left] => 5 
          [position_top] => 66 
          [order] => 2 
         ) 

        [2] => Array 
         (
          [product_name] => iPod Nano 
          [position_left] => 67 
          [position_top] => 49 
          [order] => 3 
         ) 

       ) 

     ) 

) 

и это то, что я пытаюсь использовать, но терпеть неудачу:

{foreach from=$all_baskets name=outer key=superorder item=basket} 

    <div superorder="{$basket.superorder}" > 


     {foreach from=$basket name=inner key=i item=basket_image} 

      <div product_name="{$basket_image.product_name}" order="{$basket_image.order}" style="left:{$basket_image.position_left}px; top:{$basket_image.position_top}px"></div> 

     {/foreach} 

    </div> 

{/foreach} 

Я новичок с Smarty, и я знаю, что я делаю что-то неправильно, поэтому я надеялся, что ты может помочь мне. Спасибо!

+1

Аналогичный вопрос был задан вопрос и ответил здесь: http://stackoverflow.com/questions/2562473/php-smarty-loop-multidimensional-array?rq=1 –

ответ

2

Ничего, ребята, я понял. Я не заметил, что суб-массив [корзина] должен быть вызван во втором цикле. Вот решение:

{foreach from=$all_baskets name=outer key=superorder item=singlebasket} 

      <div class="holder active" superorder="{$singlebasket.superorder}" > 

       <span {if $cart_image_url!=""}style="background:url('{$cart_image_url}')"{/if} class="basketbg"></span> 

       {foreach from=$singlebasket.basket name=inner key=i item=basket_image} 

        <img class="slot slot-{$basket_image.order}" product_name="{$basket_image.product_name}" src="{$basket_image.url}" order="{$basket_image.order}" style="left:{$basket_image.position_left}px; top:{$basket_image.position_top}px" /> 

       {/foreach} 

      </div> 

     {/foreach}