array_map
`array_map` 指令根据数组变量的每个元素应用模板。
Array-typed variables for NGINX
·
httpserverlocationif in serverif in location
语法array_map template_string array_variable [in_place];
默认值none
上下文http, server, location, if in server, if in location
参数2-3
说明
NGINX 数组类型变量模块中的 array_map 指令用于通过应用指定的模板来处理数组变量中的每个项。该指令允许 NGINX 将数组值转换为新格式,以便在配置中进行后续处理。该指令接受两个或三个参数:第一个参数是指定如何转换每个数组元素的模板字符串,第二个参数是源数组变量,可选的第三个参数指示是否就地执行操作。
调用时,array_map 会处理数组变量,并在映射操作期间将 $array_it 替换为当前正在处理项的索引。这使得在应用指定转换时可以动态引用每个数组元素。该转换的结果可用于在 NGINX 配置中生成动态内容响应或构建复杂的数据库查询。
需要注意的是,该指令只能在包括 http、server、location、if in server 和 if in location 在内的上下文中使用。这一针对性行为允许您根据路由结构中的特定位置或条件直接操作数组内容。
配置示例
location /items {
array_split ',' $arg_items to=$items;
array_map "item = $array_it" $items;
}⚠
确保模板字符串有效并适当地引用 $array_it。
⚠
在不受支持的上下文中使用该指令会导致配置错误。
⚠
请记住,数组变量在未经 array_join 转换为字符串之前,不能在本模块的指令之外使用。
⚠
请注意,array_map 不会修改原始数组;它会创建一个新的转换。