Je cherche à compter le nombre d'entrées que j'ai dans un tableau dans Twig. C'est le code que j'ai essayé:
{%for nc in notcount%}
{{ nc|length }}
{%endfor%}
Cependant, cela ne produit que la longueur de la chaîne de l'une des valeurs du tableau.
{{nc}}
produira une sortie de toutes les valeurs du tableau (il y en a 2) mais je veux que la sortie soit juste le nombre 2 (le nombre) et non toutes les informations du tableau.
Utilisez simplement le filtre de longueur sur tout le tableau. Cela fonctionne sur plus que de simples chaînes:
{{ notcount|length }}
Ceci élargit la réponse de Denis Bubnov.
J'ai utilisé cela pour trouver les valeurs enfants des éléments d'un tableau, notamment s'il y avait un champ d'ancrage dans les paragraphes d'un site Drupal 8 pour créer une table des matières.
{% 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 %}
La meilleure pratique pour obtenir la longueur est d'utiliser length
le filtre renvoie le nombre d'éléments d'une séquence ou d'un mappage, ou la longueur d'une chaîne. Par exemple: {{ notcount | length }}
Mais vous pouvez calculer le nombre d'éléments dans la boucle for
. Par exemple:
{% set count = 0 %}
{% for nc in notcount %}
{% set count = count + 1 %}
{% endfor %}
{{ count }}
Cette solution est utile si vous souhaitez calculer le nombre d'éléments par condition. Par exemple, vous avez une propriété name
à l'intérieur d'un objet et vous souhaitez calculer le nombre d'objets dont le nom n'est pas vide:
{% set countNotEmpty = 0 %}
{% for nc in notcount if nc.name %}
{% set countNotEmpty = countNotEmpty + 1 %}
{% endfor %}
{{ countNotEmpty }}
Liens utiles: