假设我的树枝中有数组
{% set temp = [
{"name": 'Tom', 'lname': 'Marko'},
{"name": 'Nick', 'lname': 'Montana'},
{"name": 'Tina', 'lname': 'Marko'},
{"name": 'Mike', 'lname': 'Miles'}
] %}
是否可以先在模板中按lname
对其进行排序,然后按name
对其进行排序,使它看起来像
{% set temp = [
{"name": 'Tina', 'lname': 'Marko'},
{"name": 'Tom', 'lname': 'Marko'},
{"name": 'Mike', 'lname': 'Miles'},
{"name": 'Nick', 'lname': 'Montana'}
] %}
还是我必须对它进行排序和排序,然后再传递给模板或创建扩展名才能使其在模板中成为可能?
答案 0 :(得分:1)
根据https://twig.symfony.com/doc/2.x/filters/sort.html
您需要:
{% set temp = [
{"name": 'Tom', 'lname': 'Marko'},
{"name": 'Nick', 'lname': 'Montana'},
{"name": 'Tina', 'lname': 'Marko'},
{"name": 'Mike', 'lname': 'Miles'}
]%}
{% for tmp in temp|sort((a, b) => (a.name <=> b.name))|sort((a, b) => (a.lname <=> b.lname)) %}
{{ tmp.name }} {{ tmp.lname }}
{% endfor %}
这个产量:
Tina Marko
Tom Marko
Mike Miles
Nick Montana