0

所以,我正在使用 Smarty2 并且不知道 Smarty。试着在我去的时候学习它。我有这个结构像这样的数组(来自 Var dump)

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阵列阵列阵列阵列阵列阵列阵列阵列阵列阵列CCX阵列阵列阵列阵列SYP阵列阵列阵列阵列阵列4X8阵列阵列阵列阵列阵列阵列阵列阵列阵列RSH 4层阵列阵列阵列阵列阵列SYP Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array Array 4X8 Array Array Array Array Array Array Array Array Array S/F 4-PLY Array Array Array Array SYP Array Array Array Array 4X8 Array Array Array Array Array Array Array Array Array S/F SE Array Array Array Array SYP Array Array数组 数组 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
4

1 回答 1

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 数组,然后使用数组键来打印你想要的数据,而不是盲目地遍历数组

于 2014-12-31T17:19:05.610 回答