2014-01-24 32 views
2

我需要將一個由;分隔的列表拆分爲多個子列表。我可以在不將它轉換爲ColdFusion中的數組的情況下做到嗎?如何拆分由「;」分隔的列表到ColdFusion中的子列表中

舉例:My_list包含:

[10043,10044,10045,10046:2,5,3,1;3453,2167:1,0;2346,8674,9043,7543,6453:0,4,2,0,1] 

我需要:

My_list1 = [10043,10044,10045,10046:2,5,3,1] 
My_list2 = [3453,2167:1,0] 
My_list3 = [2346,8674,9043,7543,6453:0,4,2,0,1] 

...等等。

+2

我很好奇,你試圖從動態變量名而不是使用數組中獲得什麼好處? – Sublimecoder

+0

其實我有一個複雜的計算在數據庫級別和這些數據從數據庫級別以這種格式進來&我需要首先分開列表由「;」分開的列表,然後將所有這些值合併成一個帶有「:」分隔值的列表。 – Himansu

+0

EX: - 我的最終名單是:Final_list = [10043,10044,10045,10046,3453,2167,2346,8674,9043,7543,6453:2,5,3,1,1,0,0,4 ,2,0,1]。有沒有其他方法可以實現這一點。 – Himansu

回答

7

你不需要「做」任何事情。列表只是一個分隔字符串。所以,如果你想設置的(命名很差,IMO)的變量,它只是一個事:

<cfset fullList = "10043,10044,10045,10046:2,5,3,1;3453,2167:1,0;2346,8674,9043,7543,6453:0,4,2,0,1"> 
<cfset varIndex = 0> 
<cfloop index="subList" list="#fullList#" delimiters=";"> 
    <cfset "My_list#++varIndex#" = subList> 
</cfloop> 
<cfdump var="#variables#"> 

我認真不會盡管使用動態變量名這樣的,我會用一個數組。

+2

個人而言,我更喜歡使用關聯數組表示法和變量作用域,即''。雖然從技術上講它沒有區別。這說...我同意這似乎沒有必要。這裏的推理是什麼? – Leigh

+0

謝謝你的回答..但我想要如下 - 我的最終名單是:Final_list = [10043,10044,10045,10046,3453,2167,2346,8674,9043,7543,6453:2,5,3, 1,1,0,0,4,2,0,1]。有沒有其他方法可以實現這一點。 – Himansu

+1

這是一個與你問的問題不同的問題!修改你的問題。同時解釋第一個列表和最後一個列表之間的關係。 –