我有一个非常大的结构,不幸的是,我只有可用的值而不是键。有没有办法切换结构的键和值或通过传递其值来搜索键?
(我正在使用别人的代码,无法更改。)
当您只知道值时,使用函数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
。