You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Twig模板中对对象数组进行不区分大小写排序?

在Twig中实现不区分大小写的数组排序(模拟strnatcasecmp)

当然可行,有两种常用方案可以实现你的需求:

方案1:基础不区分大小写字典序排序

把对象的name字段统一转成小写后再比较,就能避免大小写导致的排序偏差:

{% for station in value|sort((a, b) => a.name|lower <=> b.name|lower) %}
  <div>...</div>
{% endfor %}

通过lower过滤器将两个名称都转换为小写,再用太空船运算符<=>进行比较,这样就能实现不区分大小写的字典序排序。

方案2:模拟PHP的strnatcasecmp自然排序

如果需要像strnatcasecmp那样支持自然排序(比如让"Station 10"排在"Station 2"之后),可以直接在排序回调中调用PHP的原生函数:

{% for station in value|sort((a, b) => strnatcasecmp(a.name, b.name)) %}
  <div>...</div>
{% endfor %}

strnatcasecmp会自动处理不区分大小写的自然排序逻辑,完全匹配你的需求。只要你的Twig环境没有严格限制PHP函数调用,这个写法就能正常工作。

注意:如果你的Twig版本低于2.10,箭头函数语法不被支持,建议升级Twig版本,或者改用sort过滤器的传统参数写法。

内容的提问来源于stack exchange,提问作者Jaime Roman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 10:24:56