1

我有一个非常大的结构,不幸的是,我只有可用的值而不是键。有没有办法切换结构的键和值或通过传递其值来搜索键?

(我正在使用别人的代码,无法更改。)

4

1 回答 1

5

当您只知道值时,使用函数StructFindValue查找结构键。

它返回一个匹配数组(但默认限制为一个匹配),每个数组元素包含一个具有三个键的结构:

  • Key - 密钥的名称(你所追求的东西)
  • Path - 完整路径(用于嵌套结构);
  • Owner - 从中​​获取值的结构。

使用示例:

在 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

于 2013-01-07T14:47:41.900 回答