Twig cho vòng lặp cho mảng với các phím


152

Tôi sử dụng Twig và tôi có một mảng với các khóa như thế này:

array[1] = "alpha"
array[2] = "bravo"
array[3] = "charlie"
array[8] = "delta"
array[9] = "echo"

Và tôi muốn lấy khóa (1,2,3,8,9)và nội dung (alpha, bravo, charlie, delta, echo)trong một vòng lặp để lấy tất cả giá trị của mảng này.

Làm thế nào để tôi giải quyết vấn đề này?


1
Bạn đã thử tìm kiếm các vòng lặp PHP? Sử dụng foreachvòng lặp.
Josh

3
Nó không có trong PHP mà là Twig trong tệp mẫu!
Guillaume

3
Đủ công bằng. Bạn đã thử tìm kiếm các vòng lặp TWIG? twig.sensiolabs.org/doc/tags/for.html
Josh

Câu trả lời:




15

Đây là các hoạt động mở rộng (ví dụ: sắp xếp, đảo ngược) cho mảng một chiều và hai chiều trong khung Twig:

Mảng 1D

Không có sắp xếp chính và đảo ngược

{% for key, value in array_one_dimension %}
    <div>{{ key }}</div>
    <div>{{ value }}</div>
{% endfor %}

Sắp xếp khóa

{% for key, value in array_one_dimension|keys|sort %}
    <div>{{ key }}</div>
    <div>{{ value }}</div>
{% endfor %}

Sắp xếp chính và đảo ngược

{% for key, value in array_one_dimension|keys|sort|reverse %}
    <div>{{ key }}</div>
    <div>{{ value }}</div>
{% endfor %}

Mảng 2D

Không có sắp xếp chính và đảo ngược

{% for key_a, value_a in array_two_dimension %}
    {% for key_b, value_b in array_two_dimension[key_a] %}
        <div>{{ key_b }}</div>
        <div>{{ value_b }}</div>
    {% endfor %}
{% endfor %}

Sắp xếp khóa trên mảng ngoài

{% for key_a, value_a in array_two_dimension|keys|sort %}
    {% for key_b, value_b in array_two_dimension[key_a] %}
        <div>{{ key_b }}</div>
        <div>{{ value_b }}</div>
    {% endfor %}
{% endfor %}

Sắp xếp khóa trên cả mảng ngoài và trong

{% for key_a, value_a in array_two_dimension|keys|sort %}
    {% for key_b, value_b in array_two_dimension[key_a]|keys|sort %}
        <div>{{ key_b }}</div>
        <div>{{ value_b }}</div>
    {% endfor %}
{% endfor %}

Sắp xếp khóa trên mảng ngoài & sắp xếp khóa và đảo ngược trên mảng bên trong

{% for key_a, value_a in array_two_dimension|keys|sort %}
    {% for key_b, value_b in array_two_dimension[key_a]|keys|sort|reverse %}
        <div>{{ key_b }}</div>
        <div>{{ value_b }}</div>
    {% endfor %}
{% endfor %}

Sắp xếp khóa và đảo ngược trên mảng ngoài & sắp xếp khóa trên mảng bên trong

{% for key_a, value_a in array_two_dimension|keys|sort|reverse %}
    {% for key_b, value_b in array_two_dimension[key_a]|keys|sort %}
        <div>{{ key_b }}</div>
        <div>{{ value_b }}</div>
    {% endfor %}
{% endfor %}

Sắp xếp khóa và đảo ngược trên cả mảng bên ngoài và bên trong

{% for key_a, value_a in array_two_dimension|keys|sort|reverse %}
    {% for key_b, value_b in array_two_dimension[key_a]|keys|sort|reverse %}
        <div>{{ key_b }}</div>
        <div>{{ value_b }}</div>
    {% endfor %}
{% endfor %}

2

Tôi đoán bạn muốn thực hiện "Lặp lại các khóa và giá trị"

Như tài liệu ở đây nói, chỉ cần thêm "| phím" vào biến bạn muốn và nó sẽ xảy ra một cách kỳ diệu.

{% for key, user in users %}
    <li>{{ key }}: {{ user.username|e }}</li>
{% endfor %}

Nó không bao giờ đau để tìm kiếm trước khi hỏi :)


4
Bạn đã không đưa ra một ví dụ về việc sử dụng "| phím" trong câu trả lời của bạn.
Adambean

6
Tôi cho bạn 10 điểm vì bạn có 308 điểm, nhưng bạn trả lời "Không bao giờ đau đớn khi tìm kiếm trước khi hỏi", vì vậy tôi lấy nó ra
Braian Mellor
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.