it-swarm.dev

حساب عدد العناصر في مجموعة

أنا أتطلع لحساب عدد الإدخالات لدي في مجموعة في Twig. هذا هو الرمز الذي جربته:

{%for nc in notcount%}
{{ nc|length }}
{%endfor%}

لكن هذا ينتج فقط طول سلسلة واحدة من القيم في الصفيف.

{{nc}} سينتج مخرجات جميع قيم المصفوفة (هناك 2) لكنني أريد أن يكون الإخراج هو الرقم 2 فقط (العدد) وليس كل المعلومات في المصفوفة.

52
MikeHolford

مجرد استخدام طول مرشح على مجموعة كاملة. إنه يعمل على أكثر من مجرد سلاسل:

{{ notcount|length }}
105
Paulpro

هذا يتوسع على إجابة دنيس بوبنوف.

لقد استخدمت هذا للعثور على القيم الفرعية لعناصر الصفيف — أي إذا كان هناك حقل ربط في فقرات على موقع Drupal 8 لإنشاء جدول محتويات.

{% 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 %}
3
user3461392

أفضل ممارسة للحصول على الطول هي استخدام lengthNAME_ عامل التصفية بإرجاع عدد العناصر في تسلسل أو تعيين أو طول سلسلة. على سبيل المثال: {{ notcount | length }}

ولكن يمكنك حساب عدد العناصر في forNAME_ حلقة. فمثلا:

{% set count = 0 %}
{% for nc in notcount %}
    {% set count = count + 1 %}
{% endfor %}

{{ count }}

يساعد هذا الحل إذا كنت تريد حساب عدد العناصر حسب الشرط ، على سبيل المثال لديك خاصية nameداخل الكائن وترغب في حساب عدد العناصر التي لا تحتوي على أسماء فارغة:

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

{{ countNotEmpty }}

روابط مفيدة:

1
Denis Bubnov