首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问smarty中的嵌套数组?

如何访问smarty中的嵌套数组?
EN

Stack Overflow用户
提问于 2014-12-31 17:08:10
回答 1查看 128关注 0票数 0

所以,我使用的是Smarty2,不知道Smarty。试着边走边学。我有一个像这样构造的数组(从Var转储)

代码语言:javascript
复制
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)
        }
    }
    ...
}

数组要长得多,但这应该足以让您了解我要做的事情。正如您所看到的,在每个数组中,有另一个数组给出了项目价格。有时是没有代价的,但这是好的。不应该在那种场合。所以,我需要做的是显示价格,因为他们对应的具体项目。这是我聪明的代码。

代码语言:javascript
复制
<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}

数组的智能变量是indLine。indLine4是我试图获取的价格。我试过把它改到划船等地方,但没有用。我在浏览器中显示的内容如下所示。

CCX 4PLY阵列SYP阵列4X8阵列CCX阵列SYP阵列4X8阵列RSH 4层阵列SYP阵列4X8阵列阵列RSH阵列SYP阵列4X8阵列S/F 4层阵列SYP阵列4X8阵列S/F SE阵列SYP阵列4X8阵列阵列阵列

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-31 17:19:05

我不确定每个值/数组代表什么以及您期望的输出类型,但请尝试如下:

代码语言:javascript
复制
<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数组,然后使用数组键打印想要的数据,而不是盲目地遍历数组。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27724131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档