将值与键匹配

时间:2013-01-07 14:42:22

标签: coldfusion

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

(我正在使用其他人的代码而无法更改它。)

1 个答案:

答案 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

相关问题