我尝试使用twig在数组中添加值。 twig是否具有增量的for循环功能?我知道twig中的标准for循环(例如{%对于k%in v%}),但我对循环感兴趣,我可以在下面详细说明纯PHP中的内容:
<?php
//adding values in an array
$quantities = array('23', '23', '4', '45', '45');
$sum = 0;
for ($i = 0; $i < count($quantities); $i++) {
$sum += $quantities[$i];
}
echo "Sum: " . $sum . "\n";
?>
这正是我想要用树枝做的事情。
感谢任何帮助,All。
答案 0 :(得分:1)
您可以查看Twig中的Loop options
{% for quantity in quantities %}
// Do your stuff here with each individual quantity
// If you want to access the index ($i in your php sample)
{{ quantities[loop.index0] }}
{% endfor %}
只需将其作为参考,并检查提供的链接以使其适应您的配置。
答案 1 :(得分:1)
即使在php&#34; 本地&#34;
,您的方法也可以得到改善您知道array_sum吗?
当然,在树枝上你可以创建一个twig_extension,与twig_filter一起帮助你以聪明的方式获得你想要的东西。
使用自定义过滤器创建twig_extension(请记住按照我提供的链接&#34; twig estension&#34;):
public function getFilters()
{
return array(
new \Twig_SimpleFilter('sum', 'array_sum'),
);
}
然后你可以在你的树枝模板中使用sum关键字作为课程的过滤器
{% set sum = quantities|array_sum %}
答案 2 :(得分:0)
如果你真的想要你的PHP代码的树枝表示,那将是:
{% set sum = 0 %}
{% for value in quantities %}
{% set sum = sum + value %}
{% endfor %}
Sum: {{ sum }}
无论如何,@ DonCallisto的方法更好。