Tools 是非官方社区Wiki。社区文档正在编写中,欢迎参与。 Wiki编辑答疑群:717421103
版本250722.2
全站通知:

帮助:解析函数/arrayunique

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

Arrayunique是一个解析函数。帮助:解析函数页列出了所有解析函数的说明。

arrayunique

数组去重。出自扩展 Arrays BWIKI和各大Wiki平台广泛使用此扩展。<br>在遥远的未来,它可能与Mediawiki新的并行解析器不兼容,请参阅扩展主页了解更多信息。

修改指定数组,去重、移除空值,不修改元素顺序。

语法

{{#arrayunique:数组名}}
  • 数组名:要去重的数组。若数组不存在,函数无输出。

示例

定义数组:

去重前:1、1、01、red、blue、、、、red

执行:{{#arrayunique:a}}

去重后:1、01、red、blue

底层代码

/**  mediawiki-extensions-Arrays-REL1_37 ExtArrays.php
 * convert an array to a set
 * convert the array identified by arrayid into a set (all elements are unique)
 * also removes empty '' elements from the array
 * usage:
 *   {{#arrayunique:arrayid}}
 *
 *   see: http://www.php.net/manual/en/function.array-unique.php
 */
public static function pf_arrayunique( Parser &$parser, $arrayId ) {
	$store = self::get( $parser );

	if ( $store->arrayExists( $arrayId ) ) {
		$array = $store->getArray( $arrayId );
		$array = self::array_unique( $array );
		$store->setArray( $arrayId, $array );
	}
	return '';
}
代码逻辑:
  • 如果数组存在就去重(取出,去重,存储)
  • self::array_unique中实现了去重和去空值,其中去重基于PHP的array_unique函数

实际用例

一些Wiki使用了相关特性,如下所示这个静态列表可能在下列页面更改后过时仅供批判性参考