使用:CF10
我将结构的键值存储在变量中:
<cfset ApplicationArea = '1'>
我想在这样的结构中找到这个值是否存在:
StructKeyExists(SESSION.Auth.AccessA, #ApplicationArea#)
这一切都有效。但是,SESSION.Auth.AccessA["1"]
的结构中还有其他键。我现在需要查找此结构中是否存在某个键。这就是我提出但不起作用的地方:
StructFindValue(SESSION.Auth.AccessA[#ApplicationArea#], '3') GT 0
我收到错误“复杂对象类型无法转换为简单值。”
我想知道'3'
的结构是否存在于SESSION.Auth.AccessA["1"]
的结构中(当我转储SESSION
变量时它会这样做)。我可能会略微混淆我的解释,但我认为它是正确的。
答案 0 :(得分:3)
<cfscript>
if (ArrayLen(StructFindValue(SESSION.Auth.AccessA[ApplicationArea], '3', 'ALL'))) {
// it exists
} else {
// it does not
}
</cfscript>
编辑:非cfscript按要求
<cfif ArrayLen(StructFindValue(SESSION.Auth.AccessA[ApplicationArea], '3', 'ALL'))>
<!--- it exists --->
<cfelse>
<!--- it does not --->
</cfif>
StructFindValue返回一个结构数组,其中包含有关与该值匹配的键的信息。
https://wikidocs.adobe.com/wiki/display/coldfusionen/StructFindValue
您的问题中不需要任何#
字符(我知道您最近何时何时不使用它们)