【问题标题】:get top 3 result from foreach loop in smarty从 smarty 的 foreach 循环中获得前 3 个结果
【发布时间】:2009-11-06 10:01:31
【问题描述】:

我有一个数组要在 smarty 中循环。我的数组如下所示: 大批( [0]=>( [标题] = '一些标题' [url] = '图片网址' ) )....

我在文件 .tpl 中循环它,我只想从这个数组中获得前 3 个结果。我的数组的项目数大于 3。我是 smarty 的初学者,有人帮我解决这个问题。 非常感谢您阅读我的情况!

【问题讨论】:

  • 您单击对您有帮助的答案旁边的复选标记。例如像 FractalizeR 的。

标签: php smarty


【解决方案1】:

【讨论】:

  • 谢谢Fractalize,现在我可以做到了!
【解决方案2】:

如果这是您发布的数组:


$array = array( array('title' => 'title1', 'url' => 'url 1'),
                      array('title' => 'title2', 'url' => 'url 2'),
                      array('title' => 'title3', 'url' => 'url 3'),
                      array('title' => 'title4', 'url' => 'url 4'),
                      array('title' => 'title5', 'url' => 'url 5'));

您可以使用带有 'max' 属性的 'section' 来遍历前 3 个结果:


{section name=id loop=$array max=3}
    Title {$smarty.section.id.iteration}: {$array[id].title} 
URL {$smarty.section.id.iteration}: {$array[id].url}
{/section}

【讨论】:

    【解决方案3】:

    我不知道 Smarty,但是...

    ...如果您只对大型数组的前三个元素感兴趣,为什么不使用 for 循环而不是 foreach?

    【讨论】:

    • 呃,我很懒得更改我的代码 Roberto,但如果我没有出路,我可能会......
    【解决方案4】:

    我必须用三个不同的 div 布局从我的数组中输出前 3 个结果。第一个 div 是最大的,其他两个 div 在同一行中。我添加这个项目 数组['stt'] = 0 数组['stt'] = 1 在 tpl 我检查 {if $array.stt == 1} 或 {$array.stt == 0} 用我想要的类写出 div,我认为这不是最好的方法,但我可以完全按照我的方式工作想!! @Kailas Badu:你写的仔细又通俗易懂,非常感谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-06
      • 2015-09-18
      • 1970-01-01
      • 2018-11-28
      相关资源
      最近更新 更多