在Smarty中,有段代码如下:{section name="i" loop=$lmssupp}  {if $student[i].name != $student[i-1].name}  {/if}{/section}   请注意是红色部分的,是错的,请问该如何写好呢?谢谢...

解决方案 »

  1.   

    if 里的 i 你是想用 循环的索引值吗?如果是的话这样写
    {if $lmssupp[i.index_next] ne $lmssupp[i.index]}{section name="i" loop=$lmssupp} 这里的name是这个section的名字,可不是循环的索引哦。
      

  2.   

    你是否要实现 如果数组里面的元素name相等 做对应操作,不相等又做什么操作?
    如果是这样的话,建议你放入数组的时候就干掉重复的数据。
      

  3.   


    谢谢回复...
    恩...我明白i是索引....我要对比当前i和它前面i-1的两个值,请忽视name的命名吧...我临时改的...因为 $student是个数组,name是的其中一个元素....
      

  4.   


    谢谢....
    我只是想重复的name时可以放在一起显示....
    就是说...student类似于 
    Array (3)
    0 => Array (2)
      name => "A"
      course => "XX"
    1 => Array (2)
      name => "A"
      course => "YY"
    2 => Array (2)
      name => "B"
      course => "ZZ"我想显示个表,如果当前记录的name跟前面的相同的话,就不用再显示这个name了...
      

  5.   

    不好意思...才发现打错了...重新整理下问题——在Smarty中,有段代码如下:
    {section name="i" loop=$student}
      {if $student[i].name != $student[i-1].name}
      {/if}
    {/section}   
    请注意是红色部分的,是错的,请问该如何写好呢?谢谢... student类似于  
    Array (3)
    0 => Array (2)
      name => "A"
      course => "XX"
    1 => Array (2)
      name => "A"
      course => "YY"
    2 => Array (2)
      name => "B"
      course => "ZZ"上面代码是想显示的时候,类似于如下,谢谢:
    A
      XX
      YY
    B
      ZZ
      
      

  6.   

    刚学smarty 有个问题 section 这个可以换成自己定义字符么
      

  7.   

    {section name="mydata" loop=$student}
    {if $name[mydata.index_next] ne $name[mydata.index]}
    {$name}
    {/if}
    $course[mydata]
    {/section}   
      

  8.   

    Array (3)
    0 => Array (2)
      name => "A"
      course => "XX"
    1 => Array (2)
      name => "A"
      course => "YY"
    2 => Array (2)
      name => "B"
      course => "ZZ"LZ可以在用smarty循环输出之前,先把这些处理,
    name=> 'A', course => array('XX','YY'), //每个学生的所有课程作为一个数组
    这样直接循环输出就行了.