排序后在树枝中排序数组

时间:2020-06-09 12:04:01

标签: 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'}
] %}

还是我必须对它进行排序和排序,然后再传递给模板或创建扩展名才能使其在模板中成为可能?

1 个答案:

答案 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

demo