为
遍历每一项在一个序列。例如,显示用户列表中提供的一个变量用户
:
1 2 3 4 5 6
<h1>成员< /h1><ul>{%为用户在用户%}<李>{{用户。用户名| e}}< /李>{%endfor%}< /ul>
请注意
一个序列可以是一个数组或对象实现可否认的
接口。
如果你需要遍历序列的数字,您可以使用. .
接线员:
1 2 3
{%为我在0 . .10%}*{{我}}{%endfor%}
上面的代码片段将打印所有的数字从0到10。
它也可以有用的信:
1 2 3
{%为字母“a”。' z ' %}*{{信}}{%endfor%}
的. .
操作员可以在双方任何表达式:
1 2 3
{%为字母“a”|上. . |“z”上%}*{{信}}{%endfor%}
如果你需要一个不同于1步,您可以使用
范围
函数来代替。
“循环”变量
里面的为
循环块可以访问一些特殊的变量:
变量 | 描述 |
---|---|
loop.index |
当前迭代的循环。(1索引) |
loop.index0 |
当前迭代的循环。(0索引) |
loop.revindex |
结束循环的迭代次数(1索引) |
loop.revindex0 |
结束循环的迭代次数(0索引) |
loop.first |
如果第一次迭代 |
loop.last |
如果最后一次迭代 |
loop.length |
序列中的物品的数量 |
loop.parent |
父上下文 |
1 2 3
{%为用户在用户%}{{循环。指数}}- - - - - -{{用户。用户名}}{%endfor%}
请注意
的loop.length
,loop.revindex
,loop.revindex0
,loop.last
变量只能在PHP数组或对象实现的可数名词
接口。他们也没有当循环条件。
添加一个条件
提示
2.10的树枝,使用过滤器滤波器相反,或一个如果
内部条件为
身体(如果你的条件取决于一个变量更新内部的循环,你没有使用循环
变量)。
不像在PHP中,它是不可能的打破
或继续
在一个循环中。您可以过滤序列迭代期间你可以跳过。下面的例子跳过所有非活跃用户:
1 2 3 4 5
<ul>{%为用户在用户如果用户。活跃的%}<李>{{用户。用户名| e}}< /李>{%endfor%}< /ul>
优点是特别循环变量将计数不正确从而不包括用户迭代结束。请记住,属性等loop.last
不会被定义在使用循环条件。
请注意
使用循环
在条件变量是不可取的,因为它可能不会做你期望它。例如,添加一个条件loop.index>4< /code>不会工作条件为真时的指数只是增加(所以条件永远不会匹配)。
其他的条款
如果没有迭代发生因为序列是空的,你可以呈现一个替换块使用其他的
:
1 2 3 4 5 6 7
<ul>{%为用户在用户%}<李>{{用户。用户名| e}}< /李>{%其他的%}<李><新兴市场>没有找到用户< /新兴市场>< /李>{%endfor%}< /ul>
遍历键
默认情况下,一个循环遍历序列的值。你可以重复键使用键
过滤器:
1 2 3 4 5 6
<h1>成员< /h1><ul>{%为关键用户|键%}<李>{{关键}}< /李>{%endfor%}< /ul>
遍历键和值
您还可以访问这两个键和值:
1 2 3 4 5 6
<h1>成员< /h1><ul>{%为键,用户在用户%}<李>{{关键}}:{{用户。用户名| e}}< /李>{%endfor%}< /ul>