社区文档构建进行中,欢迎编辑。社区答疑群(非官方):717421103,点点小课堂(腾讯会议):5696651544
帮助:解析函数/arrayintersect
arrayintersect 是一个解析函数。帮助:解析函数页列出了所有解析函数的说明。
返回多个数组的交集。出自扩展 Arrays BWIKI和各大Wiki平台广泛使用此扩展。<br>在遥远的未来,它可能与Mediawiki新的并行解析器不兼容,请参阅扩展主页了解更多信息。。
两个集合[math]\displaystyle{ A }[/math]、[math]\displaystyle{ B }[/math]的交集,指[math]\displaystyle{ x \in A }[/math] 且 [math]\displaystyle{ x \in B }[/math]。
结果数组可能包含重复值,其元素顺序与第一个数组相同;从结果看,可以视为从第一个集合中移除所有其他集合都不存在的元素。
- 格式
{{#arrayintersect:新数组名 | 数组1 |数组2 |... |数组n }}
- 例子
- 有数组a:
{{#arraydefine:a|orange, orange, red, blue}}
- 有数组b:
{{#arraydefine:b|red, red, red, red, orange, yellow, yellow}}
- 有数组c:
{{#arraydefine:c|blue, red}}
- a ∩ b :
{{#arrayintersect:x|a|b}}{{#arrayprint:x}}
→ orange、orange、red - b ∩ a :
{{#arrayintersect:y|b|a}}{{#arrayprint:y}}
→ red、red、red、red、orange - a ∩ b ∩ c :
{{#arrayintersect:z|a|b|c}}{{#arrayprint:z}}
→ red - 底层代码
- 其中的
multiArrayOperation
,会从第一个数组(array_1)开始,对其他所有数组逐一执行multi_arrayintersect( array_1, array_i )
。也就是,将第一个数组与其他数组逐一计算交集; - 求交集的核心函数是 PHP 的array_intersect 函数。其比较两个元素是否相同的标准是:
(string) $elem1 === (string) $elem2
,即对PHP语言的字符串转换表达相同。
- 实际用例
- BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时