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

帮助:解析函数/arraysize

来自WIKI实验室WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
arraysize 悬浮框🟢稳定可用
返回指定数组的元素数量
{{#arraysize: 数组名}}
扩展:Arrays
数组
计数
判断
相关函数
相关资源

arraysize

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

比如数组 fruits 包含 3 个元素 apple, banana, orange,使用 {{#arraysize:fruits}} 将返回 3。空数组返回0。不存在的数组返回空字符串,可配合#if判断数组是否存在。

通常用于循环控制、条件判断、数组验证等场景。

语法

{{#arraysize: 数组名 }}

参数

数组名
要检查的目标数组名称(区分大小写)

效果

  • 输出:返回数组中元素的数量(非负整数)
  • 特殊情况:
    • 空数组返回 0
    • 不存在的数组返回空字符串(可用于判断数组是否存在)

示例

代码 效果
{{#arraydefine:fruits|apple,banana,orange}}{{#arraysize:fruits}} 3
{{#arraydefine:empty}}{{#arraysize:empty}} 0(空数组)
{{#arraysize:notexist}} (不存在的数组,不输出任何字符)
{{#if: {{#arraysize:fruits}} | 数组存在 | 数组不存在 }} 数组存在
{{#if: {{#arraysize:notexist}} | 数组存在 | 数组不存在 }} 数组不存在

底层代码

/** mediawiki-extensions-Arrays-REL1_37 ExtArrays.php
 * returns the size of an array.
 * Print the size (number of elements) in the specified array and '' if array doesn't exist
 * usage:
 *   {{#arraysize:arrayid}}
 *
 *   See: http://www.php.net/manual/en/function.count.php
 */
public static function pf_arraysize( Parser &$parser, $arrayId ) {
	$store = self::get( $parser );

	if ( !$store->arrayExists( $arrayId ) ) {
		return '';
	}

	return count( $store->getArray( $arrayId ) );
}

处理流程:

  1. 获取解析器上下文中的数组存储对象
  2. 检查指定名称的数组是否存在
  3. 若不存在,返回空字符串
  4. 若存在,调用 PHP 的 count 函数返回数组元素数量

实际用例

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

明日方舟 - arknights

恋与深空 - lysk

崩坏:星穹铁道 - sr

第五人格 - dwrg

坎特伯雷公主与骑士唤醒冠军之剑的奇幻冒险 - gt

白荆回廊 - bjhl

公主连结 - pcr

无期迷途 - wqmt

梦幻模拟战 - langrisser

深空之眼 - dhmmr

克鲁赛德战记 - cq

铃兰之剑 - llzj

天地劫 - tdj

江南百景图 - jiangnan