我有两个我希望交叉的阵列。 我有这两个数组:
{{dump(array1)}}
array(6) {
[0]=>
array(2) {
["id"]=>
int(121)
["text"]=>
string(3) "uno"
}
[1]=>
array(2) {
["id"]=>
int(122)
["text"]=>
string(3) "dos"
}
[2]=>
array(2) {
["id"]=>
int(123)
["text"]=>
string(4) "tres"
}
[3]=>
array(2) {
["id"]=>
int(124)
["text"]=>
string(6) "cuatro"
}
[4]=>
array(2) {
["id"]=>
int(125)
["text"]=>
string(5) "cinco"
}
[5]=>
array(2) {
["id"]=>
int(126)
["text"]=>
string(4) "seis"
}
}
{{dump(array2)}}
array(3) {
[0]=>
array(2) {
["id"]=>
int(124)
["text"]=>
string(6) "cuatro"
}
[1]=>
array(2) {
["id"]=>
int(125)
["text"]=>
string(5) "cinco"
}
[2]=>
array(2) {
["id"]=>
int(126)
["text"]=>
string(4) "seis"
}
[3]=>
array(2) {
["id"]=>
int(127)
["text"]=>
string(5) "siete"
}
}
我希望我的第三个数组有这样的结果:
array(3) {
[0]=>
array(2) {
["id"]=>
int(124)
["text"]=>
string(6) "cuatro"
}
[1]=>
array(2) {
["id"]=>
int(125)
["text"]=>
string(5) "cinco"
}
[2]=>
array(2) {
["id"]=>
int(126)
["text"]=>
string(4) "seis"
}
}
问题是:如何使用树枝中的简单过滤器将它们相交?
答案 0 :(得分:3)
更好的解决方案是在执行输出之前将它们与我的控制器或服务交叉:
array_intersect($array1, $array2);
Twig旨在显示模板中的数据,而不像@sjagr在评论中所做的那样进行太多处理。
答案 1 :(得分:1)
对于任何在这里结束并拥有合理用例并正在寻找实际解决方案的人...;)
将Twig array filter
filter与x in array_y
结合使用,应该可以带您到达目的地(在Twig 1.41和2.10中添加):
{% set arr_a = ['lemon', 'apple', 'peach', 'banana', 'orange', 'pear'] %}
{% set arr_b = ['mango', 'peach', 'orange', 'lemon', 'melon'] %}
{{ arr_a | filter((fruit) => fruit in arr_b) | join(', ') }}
柠檬,桃,橙