You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多值浮点字段求和问题:基于Twig计算复选框选项总分

多值浮点字段总分计算实现方案

问题背景

field_iab_quiz_gov_q3 是一个浮点型多值字段,对应复选框选项如下:

2.1|Network Security Policy
2.2|Security Awareness and Training Policy
2.3|Change Management Policy
2.4|Incident Response Policy
2.5|Remote Access Policy
2.6|Vendor Management Policy
2.7|Password Creation and Management Policy
2.8|Access Control Policy
2.9|Data Retention Policy

当前使用的Twig代码会输出每个选中选项的单独百分比:

{% set weight = 0.07 %}

{{ field_iab_quiz_gov_q3|striptags * weight +2  }}%

现在需要计算所有选中选项的总分(例如仅选前两项时总分应为 4.301%),但尝试field_iab_quiz_gov_q3_0或content.field_iab_quiz_gov_q3[0]等方式访问字段元素均失败。

解决方案

Drupal多值字段在Twig中以数组形式存在,每个选中项的浮点值存储在item.value属性中,需遍历字段项来累加计算总分:

{% set weight = 0.07 %}
{% set total_score = 0 %}

{# 遍历所有选中的字段项 #}
{% for item in field_iab_quiz_gov_q3 %}
    {# 提取选项的浮点值并计算单个项的百分比,累加到总分 #}
    {% set single_score = item.value|float * weight + 2 %}
    {% set total_score = total_score + single_score %}
{% endfor %}

{# 格式化输出,保留三位小数的百分比结果 #}
{{ total_score|number_format(3) }}%

关键说明

  • 不要使用field_iab_quiz_gov_q3_0这类命名或直接索引content数组,这不是Drupal多值字段的正确访问方式
  • 遍历field_iab_quiz_gov_q3即可获取所有选中项,每个项的value属性对应选项的浮点数值
  • 用number_format(3)确保输出的百分比保留三位小数,和单个选项的输出精度一致

内容的提问来源于stack exchange,提问作者GuyManDude

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 20:12:27