1

私はこの多次元配列をスマートに処理することに固執しています(より正確にはprestashop)。

すべての要素を反復処理するのに問題があります。

これは私の配列、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 を初めて使用し、何か間違ったことをしていることを知っているので、あなたが私を助けてくれることを望んでいました. ありがとうございました!

4

1 に答える 1

2

みんな気にしないで、私はそれを手に入れました。サブ配列 [バスケット] を 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}
于 2013-04-02T10:35:16.147 に答える