当前位置:  开发笔记 > 编程语言 > 正文

使用Smarty将元素排列成列

如何解决《使用Smarty将元素排列成列》经验,为你挑选了1个好方法。

我有一个PHP页面,生成一个元素数组.为简单起见,我们假设它按数字顺序包含数字1-5.这些数字需要相等(或尽可能接近相等)分成两列(使用html表),如下所示:

1   4
2   5
3

列数可能会在将来发生变化.由于这是对表示级别的更改,因此我认为它应该是可以通过仅在模板文件中进行更改来实现的.这告诉我,应该处理将元素划分为列的Smarty.

有没有办法用Smarty(以及如何)实现这一点,还是应该让php文件完成所有工作?



1> thomasrutter..:

可以巧妙地做到这一点,但由于HTML和CSS实际上并不支持列,因此很难做到.它涉及计算数组中有多少项,并首先使用{section}标签抓取项目的前半部分(向上舍入),并将它们显示在一列中,然后单独的{section}抓住第二列将项目的一半(四舍五入)放在第二列中.

对于{section},您可以指定要从哪个数组索引开始以及需要多少项.如果将数组中的项数设置为另一个变量,则可以计算它.

你可以尝试这样的代码 - 但我担心我没有测试过那些计算,所以它可能是错的......


  {section name=myitem loop=$items max=(($itemcount/2)+0.499)}
    {$items[myitem]}
  {/section}


  {section name=myitem loop=$items start=(($itemcount/2)+0.499)}
    {$items[myitem]}
  {/section}

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有