帮助:解析函数/arrayunique
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使用了相关特性,如下所示这个静态列表可能在下列页面更改后过时,仅供批判性参考。