coldfusion - 需要创建一个带有分隔符的字符串数组的树状结构

标签 coldfusion

我需要转换一个字符串数组,它是一个用“/”分隔的列表。

基本上我需要这个:

[
    "label1/label12/label13/label14",
    "label1/label12/label15",
    "label1/label12/label16",
    "label7/label72/label73"
]

像这样:

{
    "label1": {
        "label12": {
            "label13": "label14",
            "label15",
            "label16"
        }
    },
    "label7": {
        "label72": "label73"
    }
}

这有可能吗?

编辑:Drew之后为我的问题提供了解决方案,正如我所写的那样,我现在需要一种方法来使用“+++ In work+++”之类的键来实现它

编辑2:第二个solution效果更好。谢谢大家!

最佳答案

<cfset arrLabels = [
    "label1/label12/label13/label14",
    "label1/label12/label15",
    "label1/label12/label16",
    "label7/label72/label73"
]>




<cffunction name="labelConversion" returntype="struct">
    <cfargument name="arrLabels" type="array">
    <cfset var structLabels = {} />

    <cfloop from="1" to="#ArrayLen(arguments.arrLabels)#" index="i">
        <cfset StructGet("structLabels."&replace(arguments.arrLabels[i],'/','.', 'all'))>
    </cfloop>

    <cfreturn structLabels />
</cffunction>


<cfdump var="#labelConversion(arrLabels)#">
<cfabort>

关于coldfusion - 需要创建一个带有分隔符的字符串数组的树状结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52736727/

相关文章:

未评估 ColdFusion 语句,而是显示原始代码

coldfusion - ColdBox - 如何使用 setView() 调用设置 View 和传递参数?

scope - <cfquery> 将变量初始化到什么范围?

ColdFusion:上传前获取文件名

ColdFusion : "Element __ is undefined in FORM." 中的 HTML 表单错误

sql - 存储用户帐户权限的最佳方式?

coldfusion - 当对 web.xml 中的 servlet 映射进行更改时,CFC 文件未在 Railo 中正确处理

coldfusion - 在 ColdFusion 服务器之间共享登录凭据?

java - 实例化 Java 对象 (ColdFusion) 时发生异常

coldfusion - 在 cfquery 中使用 cachedwithin 属性