我來處理我的關聯數組PHP的風格,我會像下面ColdFusion和關聯數組
array[day][time] = count
這讓我很容易地計算出現的次數東西的數量和它的結構簡單跟...共事。在我這裏,我正在閱讀數據庫中的結果集,並且獲得類似這樣的工作將會非常有用
如何在Coldfusion中執行相同類型的事?
我來處理我的關聯數組PHP的風格,我會像下面ColdFusion和關聯數組
array[day][time] = count
這讓我很容易地計算出現的次數東西的數量和它的結構簡單跟...共事。在我這裏,我正在閱讀數據庫中的結果集,並且獲得類似這樣的工作將會非常有用
如何在Coldfusion中執行相同類型的事?
這看起來像一個結構,我 - 您可以輕鬆地創建你習慣的方式:
<cfscript>
myStruct = { day= { time = count}};
</cfscript>
或者使用舊的語法,也許概括了它更好。
<cfset mySTruct = structNew()/>
<Cfset mySTruct.day = structNew()/>
<Cfset myStruct.day.time = count/>
別忘了,一個ColdFusion查詢對象是已經與queryName [結構] [行]的格式非常有用的小數據構建 - 和查詢的查詢(在那裏你可以利用SQL簡單查詢查詢對象)也可以輕鬆訪問這些數據。
希望這可以幫助您註冊。祝你好運。
結構支持括號表示法,但您需要在引號中提供它們:myStruct ['day'] ['count'] = x;如果你是ColdFusion 9.01+,你可以簡單地使用它來簡單定義結構:
那麼, ,'時間'和'計數'是動態值(我應該更清楚)。 – 2012-07-13 20:16:49
Reg - 你的意思是:mystruct ['11/20/2010'] ['4:00 am'] = 1234; ...如果是的話,你可以做到這一點(使用括號表示法),但它可能會給你一點胃灼熱。不知道這是否是*語言中的好主意:) – 2012-07-13 20:28:34
這是一個後續的評論Reginold了有關檢查是否結構定義:
<cfset thisvar = '04/MAR/2012'>
<cfset thatvar = '04:11'>
<cfset myStruct[thisvar][thatvar] = 'test'>
<!--- Check first key, then second --->
<cfif structKeyExists(myStruct,thisvar) and structKeyExists(mystruct[thisvar],thatvar)>
Both Keys Exist.<hr>
</cfif>
<!--- Alternative Check --->
<cfif isDefined('myStruct.#thisvar#.#thatvar#') >
Key Exists.<hr>
</cfif>
<cfdump var="#myStruct#">
我改變了你的變量名稱,因爲'this'是一個保留字(指的是cfc中的公共變量),因此可能導致錯誤/混淆。 – 2012-07-13 22:11:30
您可以使用ColdFusion數組做到這一點,太。
array = [[], []];// initialize array
array[1][1] = 1;// set a value in the array
只要記住,ColdFusion的數組的索引爲1開始,不是0
正如一個側面說明 - PHP的關聯數組,而CF結構_are not_訂購。如果您需要依賴結構中項目的順序,則需要實現Java HashMap。 – 2012-07-13 23:35:58
更具體地說,一個LinkedHashMap用於保存鍵創建的日期順序,TreeMap用於按照您選擇的算法或HashMap對鍵進行排序,該HashMap內部高效地排序,看起來像是隨機的。 – 2012-07-19 01:50:21
cf中的關聯數組通常稱爲「結構」。 'struct [day] [time] = count'將日期和時間解釋爲變量。要將它們設置爲新鍵,請將它們包裝在引號中。 'struct ['day'] ['time'] = count'。 – 2012-07-19 01:54:16