我有这样的结构:
SESSION.Auth.Access["1"]["2"]["Write"]
如果我cfdump
结构#SESSION.Auth.Access#
我可以完整地看到结构,并且它100%拥有嵌套数组中的数据。
但是,如果我使用此声明:
#StructFindValue(SESSION.Auth.Access["1"], '2', 'ALL')#
我得到一个空数组。如果我使用:
#ArrayLen(StructFindValue(SESSION.Auth.Access["1"], '2', 'ALL'))#
然后它返回数组长度的零。
我做了一些明显错误的事情,或者是否存在可能的字符串/数字问题?
答案 0 :(得分:6)
所以你的结构也可以像这样编写?
SESSION.Auth.Access = {
'1' = {
'2' = {
'Write' = 'foobar'
}
}
}
'2'是键,而不是值,因此您需要使用StructFindKey而不是StructFindValue。
确实这会给我一个空数组:
<cfdump var="#StructFindValue(SESSION.Auth.Access['1'], '2', 'ALL')#">
但这会让我回到'写'结构
<cfdump var="#StructFindKey(SESSION.Auth.Access['1'], '2', 'ALL')#">