我有一个多维数组,我将它发送到我使用 smarty 的模板。
数组看起来像:
array (size=2)
'gender' =>
array (size=2)
0 => string 'male' (length=4)
1 => string 'female' (length=6)
'states' =>
array (size=11)
0 => string 'Ciudad Autonoma de Buenos Aires' (length=31)
1 => string 'Buenos Aires' (length=12)
2 => string 'Catamarca' (length=9)
3 => string 'Chaco' (length=5)
4 => string 'Chubut' (length=6)
5 => string 'Cordoba' (length=7)
6 => string 'Corrientes' (length=10)
7 => string 'Entre Rios' (length=10)
8 => string 'Formosa' (length=7)
9 => string 'Jujuy' (length=5)
10 => string 'La Pampa' (length=8)
我想要实现的是:我只能从每个数组中显示 4 个或更少的元素,具体取决于它有多少元素。例如,对于子数组“性别”,我同时显示男性和女性。但是,对于子数组“状态”,我只需要显示前 4 个元素,然后添加带有“显示更多”链接的图例。
到目前为止,这是我编码的:
{if $ns eq 'states'}
<dt>Provincia</dt>
{assign var="n" value="0"}
{counter start=0 print=false assign=n}
{foreach from=$r key=k item=v}
{counter print=false}
{if counter lt 3}
<dd>{$v}</dd>
{elseif counter eq 3}
<dd>Ver más<dd>
{/if}
{/foreach}
n = {$n}
{/if}
它没有给我想要的结果。我不知道如何“隐藏”超过 4 个的元素。我只能迭代 4 次,但在这种情况下,如果我没有 foreach,我将如何操作子数组?
输出应如下所示:
Gender
Male
Female
States
Ciudad Autonoma de Buenos Aires
Buenos Aires
Catamarca
Chaco
See More>>