Php 从Smarty阵列显示

Php 从Smarty阵列显示,php,multidimensional-array,foreach,smarty,Php,Multidimensional Array,Foreach,Smarty,我在smarty中使用了以下类型的阵列 [Main_array] => Array ( [splitlist] => 1 [counter] => 2 [listNames] => Array ( [0] => Material [1] => Color ) [splittedLists] => Array (

我在smarty中使用了以下类型的阵列

[Main_array] => Array
(
    [splitlist] => 1
    [counter] => 2
    [listNames] => Array
        (
            [0] => Material
            [1] => Color
        )

    [splittedLists] => Array
        (
            [Material_item_1] => Array
                (
                    [White] => Array
                        ( 
                            [image] => /img/thumbnail.gif
                            [imageLink] => /static/white.html
                        )

                    [Black] => Array
                        (

                            [image] => /img/no-image.gif
                            [imageLink] => /static/black.html
                        )
                )

            [Material_item_2] => Array
                (
                    [Red] => Array
                        (
                            [image] => /img/no-image.gif
                            [imageLink] => /static/Red.html
                        )

                    [Yellow] => Array
                        (
                            [image] => /img/no-image.gif
                            [imageLink] => /static/yellow.html
                        )

                )
        )
)
我想从这个数组中得到以下输出

*  Material
    -  Material_item_1
    -  Material_item_2
*  Color
    -  Nude
    -  Black
    -  Red
    -  Yellow
到目前为止,我所做的如下

[{foreach from=$item2.listNames key=subKey1 item=subItem1 name=subLp1}]
   <h2>
       <label>[{$subItem1|replace:"-":" "}]</label>
   </h2>
   <ul style="margin-left:20px;display:block;">
      [{foreach from=$item2.splittedLists key=subKey2 item=subItem2 name=subLp2}]
         <li style="float:none;"><strong>[{$subKey2|replace:"-":" "}]</strong></li>
      [{/foreach}]
   </ul>
[{/foreach}]
我正在使用PHP-OXID和Smarty。我应该在这里提到的一件事是
[SplittedList]
的元素可以大于或小于2。但2元素的逻辑也是受欢迎的

更新:我已经和客户谈过了,所以现在也欢迎任何关于结构变化的建议。Plz帮助

UPDATE2:下面是PHP数组

$arr = array(
    'Main_array' => array
    (
        'splitlist' => 1,
        'counter' => 2,
        'listNames' => array
        (
            '0' => "Material",
            '1' => "Color"
        ),
        'splittedLists' => array
        (
            'Material_item_1' => array
            (
                'White' => array
                ( 
                   'image' => "/img/thumbnail.gif",
                   'imageLink' => "/static/white.html"
                ),
                'Black' => array
                (
                   'image' => "/img/no-image.gif",
                   'imageLink' => "/static/black.html"
                 )
            ),

            'Material_item_2' => array
                (
                    'Red' => array
                        (
                            'image' => "/img/no-image.gif",
                            'imageLink' => "/static/Red.html"
                        ),

                    'Yellow' => array
                        (
                            'image' => "/img/no-image.gif",
                            'imageLink' => "/static/yellow.html"
                        )
                )
        )
)
);

对于Smarty 3.1.18中PHP中显示的数组,它应该如下所示:

{foreach $item2.listNames as $listType}
   <h2>
       <label>{$listType}</label>
   </h2>

   <ul style="margin-left:20px;display:block;">

      {if $listType eq 'Material'}
                {foreach $item2.splittedLists as $k => $v}
                    <li style="float:none;"><strong>{$k}</strong></li>
                {/foreach}
      {elseif $listType eq 'Color'}
               {foreach $item2.splittedLists as $k => $v}
                  {foreach $v as $colour => $versions}
                    <li style="float:none;"><strong>{$colour}</strong></li>
                  {/foreach}
               {/foreach}
      {/if}
   </ul>   
{/foreach}

(当然没有显示“裸体”,因为它不在数组中)

你能显示数组,而不是var\u dump吗?@Sibu这个数组我用gn
print\u r
函数放在这里,我想已经足够了。我想执行你的代码,所以如果你能提供数组..也许我会想要完整的数组输出。。所以我可以帮助:)@Sibu&Vijay:PHP数组被添加到。。。希望这将有助于回答我的问题。。谢谢朋友们。。
{foreach $item2.listNames as $listType}
   <h2>
       <label>{$listType}</label>
   </h2>

   <ul style="margin-left:20px;display:block;">

      {if $listType eq 'Material'}
                {foreach $item2.splittedLists as $k => $v}
                    <li style="float:none;"><strong>{$k}</strong></li>
                {/foreach}
      {elseif $listType eq 'Color'}
               {foreach $item2.splittedLists as $k => $v}
                  {foreach $v as $colour => $versions}
                    <li style="float:none;"><strong>{$colour}</strong></li>
                  {/foreach}
               {/foreach}
      {/if}
   </ul>   
{/foreach}
 Material

    Material_item_1
    Material_item_2

Color

    White
    Black
    Red
    Yellow