Php Smarty-foreach循环4次并创建一个新列表
我想用smarty实现这样一个列表Php Smarty-foreach循环4次并创建一个新列表,php,html,smarty,Php,Html,Smarty,我想用smarty实现这样一个列表 <ul> <li> <a>img1</a> <a>img2</a> <a>img3</a> <a>img4</a> </li> <li> <a>img5</a> <a>img6</a> <a>img7</a
<ul>
<li>
<a>img1</a>
<a>img2</a>
<a>img3</a>
<a>img4</a>
</li>
<li>
<a>img5</a>
<a>img6</a>
<a>img7</a>
<a>img8</a>
</li>
<li>
<a>img9</a>
<a>img10</a>
<a>img11</a>
<a>img12</a>
</li>
</ul>
-
{/if}
{/foreach}
首先,对于给定的数组$manufacturers,它将在
内循环最多4次,并将创建4个
。然后,当它到达第四个索引时,它将生成一个新的
标记
谢谢你的帮助 要在每个li标记中显示4个图像吗
<ul>
{foreach from=$manufacturers item=manufacturer name=manufacturer_list}
{if $smarty.foreach.manufacturer_list.index % 4 == 0}
<li>
{/if}
<a><img></a>
{if $smarty.foreach.manufacturer_list.index % 4 == 0 || $smarty.foreach.manufacturer_list.last}
</li>
{/if}
{/foreach}
</ul>
{foreach from=$manufacturers item=制造商名称=制造商\列表}
{如果$smarty.foreach.manufacturer_list.index%4==0}
-
{/if}
{如果$smarty.foreach.manufacturer_list.index%4==0 | |$smarty.foreach.manufacturer_list.last}
{/if}
{/foreach}
Im Smarty3语法您可以执行以下操作:
{$data = [
"alpha", "bravo", "charlie", "delta", "echo", "foxtrot", "golf",
"hotel", "india", "juliet", "kilo", "lima", "mike", "november",
"oscar", "papa", "quebec", "romeo", "sierra", "tango", "uniform",
"victor", "whiskey", "x-ray", "yankee", "zulu"
]}
{foreach $data as $value}
{if $value@first}
<ul>
<li>
{elseif ($value@iteration - 1) is div by 4}
</li><li>
{/if}
<span>{$value}</span>
{if $value@last}
</li>
</ul>
{/if}
{/foreach}
{$data=[
“阿尔法”,“布拉沃”,“查理”,“三角洲”,“回声”,“狐步”,“高尔夫”,
“酒店”、“印度”、“朱丽叶”、“基洛”、“利马”、“迈克”、“十一月”,
“奥斯卡”,“爸爸”,“魁北克”,“罗密欧”,“塞拉”,“探戈”,“制服”,
“维克多”,“威士忌”,“x光”,“扬基”,“祖鲁”
]}
{foreach$data as$value}
{如果$value@first}
-
{elseif($value@iteration-1)被4}除掉
-
{/if}
{$value}
{如果$value@last}
{/if}
{/foreach}
请注意,由于将整个
嵌套在foreach循环中,因此它不会显示是否没有要循环的数据。迭代-1
为什么不直接使用索引?因为您可能正在迭代一个映射(关联数组/字符串键),而该映射不适用于索引。
{$data = [
"alpha", "bravo", "charlie", "delta", "echo", "foxtrot", "golf",
"hotel", "india", "juliet", "kilo", "lima", "mike", "november",
"oscar", "papa", "quebec", "romeo", "sierra", "tango", "uniform",
"victor", "whiskey", "x-ray", "yankee", "zulu"
]}
{foreach $data as $value}
{if $value@first}
<ul>
<li>
{elseif ($value@iteration - 1) is div by 4}
</li><li>
{/if}
<span>{$value}</span>
{if $value@last}
</li>
</ul>
{/if}
{/foreach}