Arrays 在模板中获取数据时为什么不形成索引数组

Arrays 在模板中获取数据时为什么不形成索引数组,arrays,templates,twig,bolt-cms,Arrays,Templates,Twig,Bolt Cms,在twig Bolt CMS模板中,我试图通过从表中获取数据来创建一个没有重复值的数组,如下所示: {% set arr = [] %} {% setcontent pillars = 'Pillars' %} {% for pillar in pillars %} {% if pillar.title not in arr %} {% set arr = arr|merge([pillar.title]) %} {% endif %} {% endfor %} {{ dump(arr) }}

在twig Bolt CMS模板中,我试图通过从表
中获取数据来创建一个没有重复值的数组,如下所示:

{% set arr = [] %}
{% setcontent pillars = 'Pillars' %}
{% for pillar in pillars %}
{% if pillar.title not in arr %}
{% set arr = arr|merge([pillar.title]) %}
{% endif %}
{% endfor %}
{{ dump(arr) }}
if
条件似乎不起作用,因为
arr
不是索引数组。例如,我希望从
{{dump(arr)}}
中得到以下结果:

array:3 [▼
  0 => "Cash Transfer"
  1 => "Human Resource"
  2 => "ICT Services"
]
但是,我得到了以下结果,重复的
人力资源
值未被删除:

array:5 [▼
  0 => Twig_Markup {#4297 ▼
    #content: "Cash Transfer"
    #charset: "UTF-8"
  }
  1 => Twig_Markup {#4294 ▼
    #content: "Human Resource"
    #charset: "UTF-8"
  }
  2 => Twig_Markup {#4530 ▼
    #content: "ICT Services"
    #charset: "UTF-8"
  }
  3 => Twig_Markup {#4527 ▼
    #content: "Human Resource"
    #charset: "UTF-8"
  }
  4 => Twig_Markup {#4523 ▼
    #content: "Human Resource"
    #charset: "UTF-8"
  }
]

可能是什么问题,或者我做错了什么?

在非常努力地尝试之后,我设法解决了这个问题,在值之前加上一个空字符串(两个单引号)“强制”它成为字符串。这是解决方案,它可能会节省一些人在未来几个小时的审判

{% set arr = [] %}
{% setcontent pillars = 'Pillars' %}
{% for pillar in pillars %}
{% set str = ''~pillar.title %}
{% if str not in arr %}
{% set arr = arr|merge([str]) %}
{% endif %}
{% endfor %}
{{ dump(arr) }}

欢迎其他解决方案

构建索引实际上并没有错。
Twig\u标记
类只是使内部内容被视为安全的。您只需执行
{{arr[1]}
即可输出
人力资源
。您找到的解决方案可以工作,但会转义
HTML