Php 细枝数组到字符串的转换

Php 细枝数组到字符串的转换,php,arrays,string,for-loop,twig,Php,Arrays,String,For Loop,Twig,这可能相对容易做到,但我对twig还不熟悉,我很沮丧 我正在根据以下答案改编代码: 数组是通过以下格式在PHP中生成的: $link[] = array( 'link' => 'http://example.org', 'title' => 'Link Title', 'display' => 'Text to display', ); 然后通过twig,我在崩溃之前向它添加html: <ul class="conr"&

这可能相对容易做到,但我对twig还不熟悉,我很沮丧

我正在根据以下答案改编代码:

数组是通过以下格式在PHP中生成的:

$link[] = array(
       'link' => 'http://example.org',
       'title' => 'Link Title',
       'display' => 'Text to display',
);
然后通过twig,我在崩溃之前向它添加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>
有没有办法让它正确内爆

**更新**


使用Twig的dump函数,它不会返回任何内容。看起来它一开始甚至没有将其加载到数组中。如何将信息加载到新数组中。

您不应该在细枝模板中构建复杂的数据结构。您可以通过以下更惯用、更易读的方式实现所需的结果:

{% for status in status_info %}
    <a href="{{ status.link }}" title="{{ status.title }}">{{ status.display }}</a>
    {% if not loop.last %}|{% endif %}
{% endfor %}
{%表示状态为\u info%}
{%if-not loop.last%}{%endif%}
{%endfor%}

信息是一个数组,因此您应该简单地编写

{{ info|join(', ') }}
显示您的信息数组


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

您可以使用json编码将数组序列化为strig,然后显示pretty-build-in-twig

{{array | json_encode(常量('json_PRETTY_PRINT'))}

问题是,尽管它会内爆。我需要每个元素用“|”分隔,但是当我手动执行此操作时,页面右侧会有一个额外的“|”。这是我能想到的唯一能得到所需数量的方法。嗯。。。这就是
如果不是循环。最后一个
应该防止。。。!?好啊谢谢我从没听说过。我对Twig很陌生。注意:仅在关联的情况下使用值array@Delphine如果要加入关联数组的键,可以先通过
过滤器传递数组,即
{{info |键| join(',')}
请进一步解释-您的代码做什么?请记住,其他人应该能够从该代码中学习这是最好的答案,因为它会将整个结构转换为字符串,而如果变量是嵌套数组,
join
将失败(例如,尝试
['a',['b']
)。用于调试。
{{ info|join(', ') }}
{{ array|json_encode(constant('JSON_PRETTY_PRINT')) }}