树枝数组到字符串的转换

2022-08-30 18:03:22

这可能相对容易做到,但我是树枝的新手,我很沮丧。

我正在从这个答案中改编代码:https://stackoverflow.com/a/24058447

数组是通过以下格式在PHP中创建的:

$link[] = array(
       'link' => 'http://example.org',
       'title' => 'Link Title',
       'display' => 'Text to display',
);

然后通过树枝,我在内爆之前添加html:

    <ul class="conr">
        <li><span>{{ lang_common['Topic searches'] }} 
        {% set info = [] %}
        {% for status in status_info %}
            {% set info = info|merge(['<a href="{{ status[\'link\'] }}" title="{{ status[\'title\'] }}">{{ status[\'display\'] }}</a>']) %}
        {% endfor %}

        {{ [info]|join(' | ') }}
    </ul>

但我得到:

Errno [8] 数组到字符串的转换 F:\localhost\www\twig\include\lib\Twig\Extension\Core.php 第 832 行

当我删除此行时,它是固定的,但不显示:

{{ [info]|join(' | ') }}

任何想法,我如何才能正确地崩溃?

** 更新 **

使用Twig的转储函数,它不会返回任何内容。似乎它甚至没有首先将其加载到数组中。如何将信息加载到新数组中。


答案 1

info是一个数组,所以你应该简单地写

{{ info|join(', ') }}

以显示您的信息数组。

[info] 是一个具有一个值的数组:数组信息。


答案 2

你不应该真的在Twig模板中构建复杂的数据结构。您可以通过更习惯和可读的方式获得所需的结果,如下所示:

{% for status in status_info %}
    <a href="{{ status.link }}" title="{{ status.title }}">{{ status.display }}</a>
    {% if not loop.last %}|{% endif %}
{% endfor %}