Compter le nombre d’éléments dans le tableau

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%} 

Cela ne produit cependant 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 pas 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 }} 

Cela élargit la réponse de Denis Bubnov.

Je l’ai utilisé pour trouver des valeurs enfants d’éléments de tableau, à savoir 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 que use length filtre le nombre d’éléments d’une séquence ou d’un mappage, ou la longueur d’une chaîne. Par exemple: {{ notcount | length }} {{ notcount | length }}

Mais vous pouvez calculer le nombre d’éléments dans la boucle. 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 si vous avez un name propriété dans l’object et que vous souhaitez calculer le nombre d’objects sans nom vide:

 {% set countNotEmpty = 0 %} {% for nc in notcount if nc.name %} {% set countNotEmpty = countNotEmpty + 1 %} {% endfor %} {{ countNotEmpty }} 

Liens utiles:

  • length
  • set
  • for