Symfony 用细枝按字母顺序排序

Symfony 用细枝按字母顺序排序,symfony,sorting,twig,Symfony,Sorting,Twig,我正在尝试按字母顺序对类别列表进行排序。由于这更多的是一个PHP缺陷,我正试图以一种描述的方式来实现这一点。我真的没有访问系统核心文件的权限,所以需要使用小树枝标签 将数值变量用作细枝数组中的键时,无法使用内置排序筛选器。这是一个非常特殊的问题,这是由于使用了array\u merge php函数造成的 我试图将链接中的代码合并到我自己的代码中,但我无法正确完成 我这样称呼我的类别: {% for category in shop.categories %} {{ category.titl

我正在尝试按字母顺序对类别列表进行排序。由于这更多的是一个PHP缺陷,我正试图以一种描述的方式来实现这一点。我真的没有访问系统核心文件的权限,所以需要使用小树枝标签

将数值变量用作细枝数组中的键时,无法使用内置排序筛选器。这是一个非常特殊的问题,这是由于使用了array\u merge php函数造成的

我试图将链接中的代码合并到我自己的代码中,但我无法正确完成

我这样称呼我的类别:

{% for category in shop.categories %}
  {{ category.title }} - {{ category.id }}
{% endfor %}
如果我正确理解了代码,我应该执行以下操作:

{% set tempArray = {} %}

      {% for category in shop.categories %}
      numeric : {{ category.id }}, text : {{ category.title }} <br />
        {% set tempArray = tempArray | merge({('_' ~ category.numeric):(category.text)}) %}
      {% endfor %}

      {% for val in loopArray %}
      {{ tempArray['_' ~ val] }} <br/ >
      {% endfor %}
{%set tempArray={}%}
{shop.categories%%中类别的%
数字:{category.id},文本:{{category.title}}
{%set tempArray=tempArray | merge({(''~category.numeric):(category.text)})%} {%endfor%} {loopArray%中的val为%1} {{tempArray[''~val]}}
{%endfor%}
这不会对类别名称进行排序,但仍会对类别id进行排序

有什么我遗漏的吗?

忘记你给出的链接(),它只是一个糟糕的源代码,不能对数组进行排序

但是看看那里:

如果不创建自己的过滤器,就无法在twig中的类别名称上对数组进行排序。您自己的过滤器将进行排序,您将能够在您的细枝模板中使用它

==不阅读,但如果你想知道坏链接是怎么做的==== 在这个坏链接中,这个家伙通过手动设置他想要在队列中的顺序进行排序

{% set loopValues =  [10,20,30,40] %}
事实上,他的所有帖子都是为了证明这一点

{{ tempArray[val] }} doesn't work with val as a numeric
但是与

 {{ tempArray['_'~val] }} 

在一个肮脏的把戏之后(但它可能只对:{{tempArray[''~val]}起作用)但这并不重要,链接给出的代码是无用的…

@Med:请看我的更新答案。问题是我使用的数组将两个数字都用作文本值。我希望它按文本值排序,而不是按数字值排序。还不太清楚,你能给我们展示一下
tempArray
中的一些数据示例和预期结果吗在尝试转换之前,您应该尝试将值转换为单个类型sort@Jean:你这是什么意思?我还在学小树枝:(