Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 三个嵌套for循环似乎不起作用_Php_Symfony_For Loop_Nested_Twig - Fatal编程技术网

Php 三个嵌套for循环似乎不起作用

Php 三个嵌套for循环似乎不起作用,php,symfony,for-loop,nested,twig,Php,Symfony,For Loop,Nested,Twig,我目前正在做一个关于Symfony 2.8的网站项目。 但我有一个问题:我想显示来自JSON对象的信息。然而,我需要做三个嵌套for循环才能完成我想要的 下面是我的代码块: 我要浏览的阵列: element stdClass对象=> ( [partschemes]=>阵列 ( [0]=>([id]=>1) ) [decodedPartitions]=>数组 ( [0]=>stdClass对象 ( [分区]=>阵列 ( [0]=>stdClass对象 ( [名称]=>WINDOWS [类型]=>主

我目前正在做一个关于Symfony 2.8的网站项目。 但我有一个问题:我想显示来自JSON对象的信息。然而,我需要做三个嵌套for循环才能完成我想要的

下面是我的代码块:

我要浏览的阵列:

element stdClass对象=>
(
[partschemes]=>阵列
(
[0]=>([id]=>1)
)
[decodedPartitions]=>数组
(
[0]=>stdClass对象
(
[分区]=>阵列
(
[0]=>stdClass对象
(
[名称]=>WINDOWS
[类型]=>主要
[大小]=>-
[文件系统]=>fat32
)
[1] =>stdClass对象
(
[名称]=>数据*
[类型]=>主要
[大小]=>256个月
[文件系统]=>fat32
)
)
)
)
)
我的小枝模板:

{%for i,element.decodedPartitions%中的磁盘]
{%j,部分在disk.partitions%}
分区{{j}
{%k,partInfo在第%}
{{k}}:{{partInfo}}
{%endfor%} {%endfor%} {%endfor%}
因此,生成的页面向我显示,在没有不同分区信息的情况下:

---------------------------------
       | Partition 0 |          |
Disk 1 |-------------|----------|
       | Partition 1 |          |
---------------------------------
多亏了,我能够迭代我的JSON对象

原因是不可能在Twig中直接迭代stdClass对象。因此,我在控制器中使用的
json\u decode
中添加了一个参数

要将JSON转换为stdClass对象:
JSON\u decode($JSON)

要将JSON转换为关联数组:
JSON\u decode($JSON,true)


有关的详细信息。

您不能直接在twig中迭代对象属性(
部分
是对象,而不是数组!)。您可以更改导出的变量,使
part
成为数组,也可以查询具体属性,如
part.name
part.type
。。。或者,您可以使用自定义筛选器将对象强制转换为数组,如下所述: