我有这个数组:
$modules = array(
'users',
'submodule' => array(
'submodule1',
'submodule2',
),
);
我的问题是如何访问所有值并在html上显示?
我尝试过以下但没有运气:
{% for key, module in modules %}
{% if modules.key is iterable %}
{{ module }}
{$ else %}
{{ module }}
{% endif %}
{% endfor %}
谢谢!
答案 0 :(得分:1)
如果你的阵列只有2级,你可以做一些接近你所做的事情:
body
会给你(根据你给出的背景):
{% for module in modules %}
{% if module is iterable %}
{% for submodule in module %}
<p>{{ submodule }}</p>
{% endfor %}
{% else %}
<p>{{ module }}</p>
{% endif %}
{% endfor %}
请参阅fiddle
但是如果你的数组有任意数量的级别,你应该使用宏做一些递归:
<p>users</p>
<p>submodule1</p>
<p>submodule2</p>
使用以下上下文(采用YAML格式):
{% macro show_array(array) %}
{% from _self import show_array %}
{% for module in array %}
{% if module is iterable %}
{{ show_array(module) }}
{% else %}
<p>{{ module }}</p>
{% endif %}
{% endfor %}
{% endmacro %}
{% from _self import show_array %}
{{ show_array(modules) }}
这会给你:
modules:
0: users
submodule:
0: submodule1
1: submodule2
subsubmodule:
0: subsubmodule1
1: subsubmodule2
请参阅fiddle