CFML使用StructFindValue()来查找和替换结构内部的字符串值

时间:2015-10-19 15:18:45

标签: coldfusion cfml

问题:如何使用path返回的StructValueFind()值为键path指定新值?

我希望在结构中搜索特定字符串的所有值,然后用不同的值替换该字符串。

我能够找到我使用StructFindValue()搜索的字符串的所有匹配项,该字符串返回一个结构数组,其中包含键keyowner和{{ 1}}。我假设path允许我设置一个新值/替换找到的字符串。

根据Adobe's CFML 9 documentation for StructFindValue()path值为......

  

路径:可用于到达找到的密钥的字符串

但我无法在任何地方找到如何使用path的值来找到找到的密钥,并专门为该密钥指定一个新值。

1 个答案:

答案 0 :(得分:6)

你不应该乱用路径:来自structFindValue()的结果已经返回对所讨论的子结构的直接引用(在owner键中)。

所以这类事应该可以解决问题:

<cfscript>
st = {
    top={
        middle1={lower1="value1",lower2="value2"},
        middle2={lower3="value3",lower4="value4"}
    }
};
writeDump(st);

value = structFindValue(st, "value3");
writeDump(value);

value[1].owner[value[1].key] = "new value";
writeDump(st);
</cfscript>