社区文档构建进行中,欢迎编辑。社区答疑群(非官方):717421103
帮助:解析函数/arrayslice
Arrayslice是一个解析函数。帮助:解析函数页列出了所有解析函数的说明。
arrayslice
数组切片。出自扩展 Arrays BWIKI和各大Wiki平台广泛使用此扩展。<br>在遥远的未来,它可能与Mediawiki新的并行解析器不兼容,请参阅扩展主页了解更多信息。。
从数组的指定位置开始,提取指定长度的片段,存入新数组。
语法
{{#arrayslice:新数组名|数组名|偏移量|长度}}
- 新数组名:存放结果
- 数组名:操作目标
- 偏移量:切片起始位置,可以是负数用于向后索引(最后一个元素是-1)
- 长度:要提取的元素数量,默认为后续全部元素。
数组不存在时,返回空字符串
示例
有数组x
为:{{#arraydefine:x|a,b,c,d,e,f,g}}
→ a、b、c、d、e、f、g
{{#arrayslice:y|x|0|2}}
→ a、b{{#arrayslice:y|x|1|3}}
→ b、c、d{{#arrayslice:y|x|-3|2}}
→ e、f{{#arrayslice:y|x|2}}
→ c、d、e、f、g
底层代码
- 代码逻辑:
- 函数参数包括 $parser(解析器对象)、$arrayId_new(新数组ID)、$arrayId(目标数组ID,默认为 null)、$offset(偏移量,默认为 0)、$length(长度,默认为 null)。
- 如果 $arrayId 为 null,返回空字符串(其中的$egArraysCompatibilityMode为False)。
- 获取目标数组 $array,确保至少存在一个空数组。
- 如果目标数组不存在或者 $offset 不是数字,则返回空字符串。
- 如果 $length 不是数字,则将其设为 null,表示截取到数组末尾。
- 从目标数组中提取指定偏移量和长度的片段(基于 PHP 的 array_slice 函数),并将结果存储到新数组中。
实际用例
- 一些Wiki使用了相关特性,如下所示这个静态列表可能在下列页面更改后过时,仅供批判性参考。
- 模板:装备研发/数据 - 碧蓝航线
- 模板:装备研发上下级 - 碧蓝航线
- 模板:天堂岛日程/卡池 - 坎特伯雷公主与骑士唤醒冠军之剑的奇幻冒险
- 模板:英雄up历史 - 坎特伯雷公主与骑士唤醒冠军之剑的奇幻冒险
- 模板:Ask - 三国杀
- 模板:概念页 - 三国杀
- 模板:画师 - 三国杀
- 模板:关卡导航 - 无期迷途
- 模板:剧情导航 - 无期迷途
- 模板:概念页 - 三国杀OL
- 模板:画师 - 三国杀OL
- 模板:UP勇士历史 - 克鲁赛德战记
- 模板:活动日历 - 克鲁赛德战记
- 模板:模板代码框 - 克鲁赛德战记
- 模板:新首页模板/up勇士 - 克鲁赛德战记