排序后在树枝中排序数组
Ordering array in twig after sorting it
假设我在 twig 中有数组
{% 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'}
] %}
或者我必须在传递给模板或创建扩展以使其在模板中成为可能之前对其进行排序和排序?
根据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
假设我在 twig 中有数组
{% 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'}
] %}
或者我必须在传递给模板或创建扩展以使其在模板中成为可能之前对其进行排序和排序?
根据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