假设我们在Twig中有一个数组(让我们称之为arr
),如下所示:
foo: [
{
title: 'foo',
id: 1
},
{
title: 'bar',
id: 2
}],
bar: [
{
some: 23,
required: true
},
{
some: 12,
required: false
}]
数组元素的数量和顺序可能不同,所以我不能使用类似arr.foo [0]的东西来获取第一个元素。我怎样才能创建一个条件if 'bar' exists in the foo array OR 'some' equals to 12 in my bar array
的枝条?
我试过了:
if 'bar' exists in arr.foo.title or 12 exists in arr.bar.some
(这显然不起作用,因为foo和bar的键是数字键而不是' title'或者' some')。
我也尝试过:
if arr.foo.title['bar'] is defined or arr.bar.some['12'] is defined
(由于同样的原因,它没有定义)
我试过了:
for item in arr.foo if item.title == 'bar' or for item2 in arr.bar if item2.some == 23
(因为两个for
循环而无法工作)
我该如何解决这个问题?
答案 0 :(得分:0)
您展示的代码是JSON而不是数组。 PHP和Twig数组都必须具有唯一的命名键。
这是有效数组的Twig代码:
{% set arr = {
'foo1': {
'title': 'foo','id': 1
},
'foo2': {
'title': 'bar','id': 2
},
'bar1': {
'some': 23,'required': true
},
'bar2':{
'some': 12,'required': false
}
} %}
我创建了一个类似于上面的数组。 然后这是一个TwigFiddle,您可以看到如何运行测试:https://twigfiddle.com/8ydz3t
你可以在Twigfiddle中玩游戏,看看你如何使用Twig和数组来找出你需要的东西。
我希望有所帮助!