社区文档构建进行中,欢迎编辑。社区答疑群(非官方):717421103,点点小课堂(腾讯会议):5696651544

全站通知:

帮助:解析函数/arraydiff

来自WIKI实验室WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索


计算数组差集。出自扩展Arrays

多个数组的差集,就是从第一个数组中去除所有存在于其他数组中的元素,得到的结果数组。参见:PHP array_diff 函数MediaWiki和Arrays扩展使用PHP语言开发,因此其底层行为取决于PHP的特性。

例如对集合 [math]\displaystyle{ A }[/math][math]\displaystyle{ B }[/math][math]\displaystyle{ C }[/math],差集可以表示为 [math]\displaystyle{ A - B - C }[/math],即从[math]\displaystyle{ A }[/math] 中去除存在于 [math]\displaystyle{ B }[/math][math]\displaystyle{ C }[/math] 中的元素。

格式
{{#arraydiff: 结果数组名 | 数组1 | 数组2 | ... | 数组N }}
例子
先定义数组:{{#arraydefine:a|2,1,1,3,blue,apple,apple}}{{#arraydefine:b|2,2,blue}}{{#arraydefine:c|3,blue}}
[math]\displaystyle{ A - B }[/math]{{#arraydiff:x | a | b }} → 1、1、3、apple、apple
[math]\displaystyle{ A - C }[/math]{{#arraydiff:x | a | c }} → 2、1、1、apple、apple
[math]\displaystyle{ A - B - C }[/math]{{#arraydiff:x | a | b | c }} → 1、1、apple、apple
[math]\displaystyle{ A - C - B }[/math]{{#arraydiff:x | a | c | b }} → 1、1、apple、apple
底层代码
代码包含了三个函数。其中函数 multiArrayOperation 会从给出的第一个数组(array_1)开始,逐一调用multi_arraydiff( array_1, array_i )。就是将首个数组逐一与其他数组求差集。
函数multi_arraydiff中调用了PHP array_diff 函数。两个元素只有在(string) $elem1 === (string) $elem2时视为一致。 即对PHP语言的字符串转换表达相同。
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时