我试图使用Twig在for
循环中分组。我找到了Twig的扩展,为树枝添加了额外的功能。这是以下链接:twig-lambda。当我试图通过skillcategory
分组时,它会显示两次而不是一次。
这是我得到的数据:
[
{
"0": {
"skillid": 1,
"skillname": "PHP",
"skillcategory": "Programing Langugages",
"skilllevel": 62
},
"4": {
"skillid": 5,
"skillname": "C#",
"skillcategory": "Programing Langugages",
"skilllevel": 50
}
},
{
"1": {
"skillid": 2,
"skillname": "Walking",
"skillcategory": "Others",
"skilllevel": 20
},
"2": {
"skillid": 3,
"skillname": "Jumping",
"skillcategory": "Others",
"skilllevel": 100
},
"3": {
"skillid": 4,
"skillname": "Naping",
"skillcategory": "Others",
"skilllevel": 80
}
}
]
我真正想要的是什么
Programing Langugages
PHP, C#
Others
Walking, Jumping, Naping
它是我的twig代码版本:
{% for key, i in skills|group_by(=> _.skillcategory) %}
{% for b in i %}
<div>{{b.skillcategory}}</div>
{{b.skillname}}
{% endfor %}
{% endfor %}
你快到了。只需在外面打印类别即可。
{% for key, i in skills|group_by(=> _.skillcategory) %}
{{ key }}
{% for b in i %}
{{ b.skillname }}
{% endfor %}
{% endfor %}
首先你的JSON无效!
试试这个:
[
{
"0": {
"skillid": 1,
"skillname": "PHP",
"skillcategory": "Programin Langugages",
"skilllevel": 62
},
"4": {
"skillid": 5,
"skillname": "C#",
"skillcategory": "Programin Langugages",
"skilllevel": 50
}
},
{
"1": {
"skillid": 2,
"skillname": "Walking",
"skillcategory": "Others",
"skilllevel": 20
},
"2": {
"skillid": 3,
"skillname": "Jumping",
"skillcategory": "Others",
"skilllevel": 100
},
"3": {
"skillid": 4,
"skillname": "Naping",
"skillcategory": "Others",
"skilllevel": 80
}
}
]
字符串应该用双引号括起来。
编辑:我不确定但尝试这个:
{% for key, i in ['Programin Langugages', 'Others']|group_by(=> _.skillcategory) %}
{% for b in i %}
<div>{{b.skillcategory}}</div>
{{b.skillname}}
{% endfor %}
{% endfor %}