在枝条中增量循环

时间:2014-11-07 17:38:40

标签: php symfony templates twig

我尝试使用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。

3 个答案:

答案 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的方法更好。

相关问题