Twig 计算数组中的元素数
我希望在Twig中计算数组中的条目数。这是我尝试过的代码:Twig 计算数组中的元素数,twig,Twig,我希望在Twig中计算数组中的条目数。这是我尝试过的代码: {%for nc in notcount%} {{ nc|length }} {%endfor%} 但是,这只生成数组中某个值的字符串长度 {{nc}将生成数组所有值的输出(有2个),但我希望输出仅为数字2(计数),而不是数组中的所有信息。只需在整个数组中使用。它不仅适用于字符串: {{ notcount|length }} 获取长度的最佳实践是使用过滤器返回序列或映射的项数,或字符串的长度。例如:{{notcount | leng
{%for nc in notcount%}
{{ nc|length }}
{%endfor%}
但是,这只生成数组中某个值的字符串长度
{{nc}
将生成数组所有值的输出(有2个),但我希望输出仅为数字2(计数),而不是数组中的所有信息。只需在整个数组中使用。它不仅适用于字符串:
{{ notcount|length }}
获取长度的最佳实践是使用过滤器返回序列或映射的项数,或字符串的长度。例如:
{{notcount | length}}
但您可以计算循环中元素的数量。例如:
{% set count = 0 %}
{% for nc in notcount %}
{% set count = count + 1 %}
{% endfor %}
{{ count }}
如果您希望按条件计算元素的计数,例如,您在对象内部有一个属性名称
,并且您希望计算具有非空名称的对象的计数,则此解决方案将有所帮助:
{% set countNotEmpty = 0 %}
{% for nc in notcount if nc.name %}
{% set countNotEmpty = countNotEmpty + 1 %}
{% endfor %}
{{ countNotEmpty }}
有用链接:
{% set count = 0 %}
{% for anchor in items %}
{% if anchor.content['#paragraph'].field_anchor_link.0.value %}
{% set count = count + 1 %}
{% endif %}
{% endfor %}
{% if count > 0 %}
--- build the toc here --
{% endif %}
那太完美了。我觉得很傻。哈哈,非常感谢@没问题。如果
notcount
不是数组,而是实现SPL可计数接口的类的对象(例如,这是条令的\doctor\Common\Collections\ArrayCollection
),我很高兴能提供帮助,那么您可以使用{{notcount.count}