المرشح slice في Twig
المرشح slice
يستخرج شريحة صغيرة من التسلسل أو الربط mapping أو السلسلة النصية:
{% for i in [1, 2, 3, 4, 5]|slice(1, 2) %}
{# سيكرر على 2 و 3 #}
{% endfor %}
{{ '12345'|slice(1, 2) }}
{# يخرج 23 #}
يمكن استخدام أي تعبير صالح للبداية والطول:
{% for i in [1, 2, 3, 4, 5]|slice(start, length) %}
{# ... #}
{% endfor %}
يُستخدم ترميز []
من أجل التجميل اللغوي:
{% for i in [1, 2, 3, 4, 5][start:length] %}
{# ... #}
{% endfor %}
{{ '12345'[1:2] }} {# will display "23" #}
{# يمكن إهمال الوسيط الأول كأننا كتبنا صفرًا #}
{{ '12345'[:2] }} {# will display "12" #}
{# إذا أهملنا الوسيط الأخير فسيختار كل العناصر الباقية #}
{{ '12345'[2:] }} {# will display "345" #}
أسلوب عمل المرشح slice
يشبه دالة array_slice
للمصفوفات في لغة PHP، و mb_substr
للسلاسل النصية التي تستخدم substr
كاحتياطي.
يبدأ التسلسل من بداية المتغير إن كانت البداية غير سالبة، فإن كانت سالبة فإنه يبدأ من نفس المسافة من نهاية المتغير. إذا أُعطي الطول وكان موجبًا فإن التسلسل سيحتوي على عناصر عددها يساوي الطول، وإن كان المتغير أقصر من الطول فستكون العناصر المتغيرة فقط هي المتاحة، وإذا أُعطي الطول وكان سالبًا فإن التسلسل يوقف من العناصر عددًا مساويًا لذلك الطول من نهاية المتغير، أما إذا أُهمل الطول فإن التسلسل سيحتوي على كل شيء من البداية حتى نهاية المتغير.
لاحظ أنه يعمل مع الكائنات التي تستخدم واجهة Traversable
.
الوسائط
start
: بداية الجزء.length
: حجم الشريحة.preserve_keys
: تحديد هل يجب حفظ المفتاح أم لا إذا كان الدخل مصفوفة.