我有一个非常大的结构而不是密钥,遗憾的是我只有值可用。 有没有办法通过传递其值来切换结构的键和值或搜索键?
(我正在使用其他人的代码而无法更改它。)
答案 0 :(得分:5)
当您只知道值时,使用函数StructFindValue查找结构键。
它返回一个匹配数组(但默认限制为一个匹配),每个数组元素包含一个带三个键的结构:
查找指向CGI范围中localhost IP地址的键(范围也是结构):
<cfset Result = StructFindValue( CGI , '127.0.0.1' ) />
<cfdump var=#Result[1].Key# />
输出remote_addr
- 找到的第一个值。
请注意,结构的排序无法保证 - 第一个值在不同情况下可能会有所不同。
要获得所有结果,只需将范围参数指定为all
:
<cfset Result = StructFindValue( CGI , '127.0.0.1' , 'all' ) />
<cfloop index=i from=1 to=#ArrayLen(Result)#>
<cfdump var=#Result[i].Key# />
</cfloop>
输出remote_addr
remote_host
local_addr
。