在Twig中反转数组

时间:2017-07-28 09:00:00

标签: symfony sorting

我正在使用Symfony 2.5和PHP 5.3进行文件浏览器

在我的Controller中,我将一个数组返回到我的视图(在目录上调用scandir();的结果)

数组包含“months”。 (1月,2月,3月......)我用Bootstrap手风琴展示它。

我想通过降序这个数组来命令:

12月 - > 11月 - >十月 - >九月......

我们可以看到{{ for months in month|sort|reverse }}在这里不起作用。

我该怎么办呢?

2 个答案:

答案 0 :(得分:1)

您需要按索引对数组进行排序,否则它将按字母顺序对数组进行排序:

{% set months = {1: 'January', 2: 'February', 3: 'March', 4: 'April', 5: 'May', 6: 'June', 7: 'July', 8: 'August', 9: 'September', 10: 'October', 11: 'November', 12: 'December'} %}

{% for month in months|reverse %}
 {{ month }}
{% endfor %}

答案 1 :(得分:0)

您可以使用PHP函数array_reverse()。它以相反的顺序为您提供数组。所以你不必在Twig做任何事情。

$input  = array(1, 2, 3);
$reversed = array_reverse($input);

当然,您必须在控制器中使用此功能。

要按月按字母顺序排序,但按时间排序,请参阅此帖子。 PHP re-order array of month names

这个问题已经得到解答。你只需要在你的控制器中按照这样的顺序进行订购即可。