所以,我正在使用Smarty2并且不知道Smarty。我试着去学习它。 我有这样的数组结构(来自Var转储)
array(59) {
[0]=> array(4) {
[0]=> string(10) "CCX 4PLY"
[1]=> string(3) "SYP"
[2]=> string(4) "4X8 "
[3]=> array(6) {
[0]=> string(0) ""
[1]=> string(0) ""
[2]=> string(0) ""
[3]=> int(761)
[4]=> string(0) ""
[5]=> string(0) ""
}
}
[1]=> array(4) {
[0]=> string(5) " CCX"
[1]=> string(3) "SYP"
[2]=> string(4) "4X8 "
[3]=> array(6) {
[0]=> string(0) ""
[1]=> string(0) ""
[2]=> string(0) ""
[3]=> string(0) ""
[4]=> int(823)
[5]=> int(937)
}
}
...
}
阵列要长得多,但这应该足以让你知道我的目标。如您所见,在每个数组中,还有另一个数组可以提供商品价格。有时没有价格,但这很好。不应该在那些场合。 所以,我需要做的是显示与特定项目相对应的价格。这是我在smarty中的代码。
<table>
{foreach name=outer item=row from=$indLine}
<tr>
{foreach key=key item=item from=$row}
<td>{$item}</td>
{foreach key=price item=price from=$row}
<td>{$indLine[4]}</td>
{/foreach}
{/foreach}
</tr>
{/foreach}
我对数组的smarty变量是indLine。 indLine [4]是我试图获取价格的地方。我已经尝试将其更改为行等。没有任何作用。我在浏览器中显示的是以下内容。
CCX 4PLY阵列阵列阵列SYP阵列阵列阵列阵列4X8阵列阵列阵列阵列阵列阵列阵列 CCX阵列阵列阵列阵列SYP阵列阵列阵列阵列4X8阵列阵列阵列阵列阵列阵列阵列阵列 RSH 4-PLY阵列阵列阵列SYP阵列阵列阵列阵列4X8阵列阵列阵列阵列阵列阵列阵列 RSH阵列阵列阵列阵列SYP阵列阵列阵列阵列4X8阵列阵列阵列阵列阵列阵列阵列阵列 S / F 4-PLY阵列阵列阵列阵列SYP阵列阵列阵列4X8阵列阵列阵列阵列阵列阵列阵列 S / F SE阵列阵列阵列SYP阵列阵列阵列阵列4X8阵列阵列阵列阵列阵列阵列阵列
CCX 4PLY 0 SYP 0 4X8 0 Array 0
CCX 0 SYP 0 4X8 0 Array 0
RSH 4-PLY 0 SYP 0 4X8 0 Array 0
RSH 0 SYP 0 4X8 0 Array 0
S/F 4-PLY 0 SYP 0 4X8 0 Array 0
S/F SE 0 SYP 0 4X8 0 Array 0
RSH 3-PLY 0 SYP 0 4X8 0 Array 0
RSH 4-PLY 0 SYP 0 4X8 0 Array 0
RSH 0 SYP 0 4X8 0 Array 0
S/F 4-PLY 0 SYP 0 4X8 0 Array 0
答案 0 :(得分:1)
我不确定每个值/数组代表什么以及您期望的输出类型,但请尝试以下方法:
<table>
{foreach name=outer item=row from=$indLine}
<tr>
{foreach key=key item=item from=$row}
{if is_array($item)}
{foreach key=key item=price from=$item}
<td>{$price}</td>
{/foreach}
{else}
<td>{$item}</td>
{/endif}
{/foreach}
</tr>
{/foreach}
当您在foreach循环中时,使用由item
定义的变量。我建议你在php中构建assocc数组,然后使用数组键打印你想要的数据,而不是盲目地遍历数组