Symfony / TWIG,按键对数组进行排序

Zay*_*ers 4 sorting twig

是否可以在没有树枝扩展的情况下按键对数组进行排序?

我有一个这样的数组:

{key1 : object1, key2 : object2...)
Run Code Online (Sandbox Code Playgroud)

当我使用时{% for t in tab|sort%},它给我一个按对象 ID 而不是按键排序的数组。

没有树枝扩展就没有办法做到这一点?

Anj*_*lva 6

据我所知,没有过滤器可以按数组键进行排序。

但是,如果您需要创建过滤器,您可以在扩展的 Twig 扩展文件中执行此操作,

创建函数,

public function ksort($array) {
    ksort($array);        
    return $array;
}
Run Code Online (Sandbox Code Playgroud)

挂钩可用过滤器中的功能,

public function getFilters() {
    $this->filters['ksort'] = new \Twig_SimpleFilter('ksort', array($this, 'ksort'));        
    return $this->filters;
}
Run Code Online (Sandbox Code Playgroud)

并调用过滤器,

{% for a in array | ksort %}
    <h2>{{ a }}</h2>   
{% endfor %}    
Run Code Online (Sandbox Code Playgroud)

干杯