Php 从Smarty阵列显示
我在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 (
[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