Twig - 检查数组中是否有任何数字大于 0.00
Twig - Check if any number in array is greater than 0.00
请有人帮助我,我需要 运行 一些 html 如果数组中存在大于 0.00 的值,则基于以下规则。
运行 作为第 3 项的 html 的值是否应该大于 0.00
项目
数量
1
0.00
2
0.00
3
4.99
不应该 运行 html 因为没有项目的值大于 0.00
项目
数量
1
0.00
2
0.00
3
0.00
我相信我应该使用 IN,但我不知道如何检查数字,只能检查字符串。
{% if 数组中的值 %}运行 html {% endif %}
这里没有几个选项可以做到这一点,
- 树枝解决方案
要测试是否有任何值大于您需要循环所有元素来测试它,因为您无法跳出 twig
内的循环。您建议的 in
测试对此不起作用,因为您不知道数组中有哪些元素
{% set sum = 0 %}
{% for value in array %}
{% set sum = sum + value %}
{% endfor %}
{% if sum > 0 %}
{# display table #}
{% endif %}
- PHP解决方案
你可以通过获取元素的总和在控制器中解决这个问题
<?php
$data = [ 0, 0, 3, 0, 0, ];
echo $twig->render('template.twig', [
'data' => $data,
'have_values' => array_sum($data) > 0,
]);
{% if has_values %}
{# display table #}
{% endif %}
- 延长树枝
您还可以扩展 twig
,如果您在多个地方需要此结构,这将是最佳解决方案。
下面的代码片段使 PHP 函数 array_sum
在您的模板中可用
扩展twig要看你用的是什么框架,你没提供,我提供的是单机版
<?php
$twig->addFilter(new \Twig\Filter('array_sum', 'array_sum'));
{% if data|array_sum %}
{# display data #}
{% endif %}
请有人帮助我,我需要 运行 一些 html 如果数组中存在大于 0.00 的值,则基于以下规则。
运行 作为第 3 项的 html 的值是否应该大于 0.00
项目 | 数量 |
---|---|
1 | 0.00 |
2 | 0.00 |
3 | 4.99 |
不应该 运行 html 因为没有项目的值大于 0.00
项目 | 数量 |
---|---|
1 | 0.00 |
2 | 0.00 |
3 | 0.00 |
我相信我应该使用 IN,但我不知道如何检查数字,只能检查字符串。
{% if 数组中的值 %}运行 html {% endif %}
这里没有几个选项可以做到这一点,
- 树枝解决方案
要测试是否有任何值大于您需要循环所有元素来测试它,因为您无法跳出 twig
内的循环。您建议的 in
测试对此不起作用,因为您不知道数组中有哪些元素
{% set sum = 0 %}
{% for value in array %}
{% set sum = sum + value %}
{% endfor %}
{% if sum > 0 %}
{# display table #}
{% endif %}
- PHP解决方案
你可以通过获取元素的总和在控制器中解决这个问题
<?php
$data = [ 0, 0, 3, 0, 0, ];
echo $twig->render('template.twig', [
'data' => $data,
'have_values' => array_sum($data) > 0,
]);
{% if has_values %}
{# display table #}
{% endif %}
- 延长树枝
您还可以扩展 twig
,如果您在多个地方需要此结构,这将是最佳解决方案。
下面的代码片段使 PHP 函数 array_sum
在您的模板中可用
扩展twig要看你用的是什么框架,你没提供,我提供的是单机版
<?php
$twig->addFilter(new \Twig\Filter('array_sum', 'array_sum'));
{% if data|array_sum %}
{# display data #}
{% endif %}