建立陣列
使用 ArrayNew()
顯式建立陣列
使用 ArrayNew 函式宣告一個陣列。指定維數作為引數。
- ArrayNew( dimension )建立一個 1-3 維的陣列。
- ColdFusion 陣列在新增資料時動態擴充套件。
ArrayNew()
返回一個陣列。
歷史
在 ColdFusion MX 6 中引入
宣告
CFML
<!--- One Dimension Array--->
<cfset oneDimensionArray = ArrayNew(1)>
CFScript 請注意,在函式內部,你應該使用 var
作用域。早期版本的 CF 要求 var 範圍是函式中的第一件事; 更高版本允許它在函式中的任何位置。
<cfscript>
oneDimensionArray = ArrayNew(1);
public void function myFunc() {
var oneDimensionArray = ArrayNew(1);
}
</cfscript>
建立陣列後,使用元素索引新增元素。Coldfusion 陣列索引從 1 開始:
CFML
<cfset oneDimensionArray[1] = 1>
<cfset oneDimensionArray[2] = 'one'>
<cfset oneDimensionArray[3] = '1'>
CFSCRIPT
<cfscript>
oneDimensionArray[1] = 1;
oneDimensionArray[2] = 'one';
oneDimensionArray[3] = '1';
</cfscript>
使用 ArrayAppend()
你可以使用函式 ArrayAppend(array, value)
向元素新增元素。
<cfscript>
ArrayAppend(oneDimensionArray, 1);
ArrayAppend(oneDimensionArray, 'one');
ArrayAppend(oneDimensionArray, '1');
</cfscript>
使用 <cfdump>
輸出陣列內容:
<cfdump var="#oneDimensionArray#">
結果:
CFML
<!--- Two Dimension Array--->
<cfset twoDimensionArray = ArrayNew(2)>
<cfset twoDimensionArray[1][1] = 1>
<cfset twoDimensionArray[1][2] = 2>
<cfset twoDimensionArray[2][1] = 3>
<cfset twoDimensionArray[2][2] = 4>
CFSCRIPT
<cfscript>
twoDimensionArray = ArrayNew(2);
twoDimensionArray[1][1] = 1;
twoDimensionArray[1][2] = 2;
twoDimensionArray[2][1] = 3;
twoDimensionArray[2][2] = 4;
</cfscript>
使用 <cfdump>
輸出陣列的內容
<cfdump var="#twoDimensionArray#">
結果:
每個元素都包含另一個 Array,它將儲存值。
隱式建立一維陣列
隱式建立陣列時,括號([])用逗號分隔符包圍陣列內容。
<cfset oneDimensionArrayImplicit = [ 1 ,'one','1' ]>
此語句等同於用於建立上述 oneDimensionArray 的四個語句。使用時結果相同:
<cfdump var="#oneDimensionArrayImplicit#">
隱式建立二維陣列
<cfset twoDimensionArrayImplicit = [[ 1 , 2 ],[ 3 , 4 ],[ 5 , 6 ]]>
要麼:
<cfset firstElement = ["1", "2"]>
<cfset secondElement= ["3", "4"]>
<cfset thirdElement = ["5", "6"]>
<cfset twoDimensionArrayImplicit = [firstElement , secondElement, thirdElement]>
使用輸出內容
<cfdump var="#twoDimensionArrayImplicit#">
替代明確宣告
你也可以將 1 維陣列宣告為
<cfset oneDimensionArray = []>
<cfscript>
oneDimensionArray = [];
</cfscript>
該宣告與使用 ArrayNew(1)
的宣告相同。
但是如果你嘗試將 2 維陣列宣告為
<cfset twoDimensionArray =[][]> //Invalid CFML construct
處理此請求時將發生錯誤。
以下宣告將處理請求:
<cfset twoDimensionArray =[]>
但變數 twoDimensionArray
實際上不是 Array(或 2 維陣列)中的陣列。它實際上包含 Array 中的結構。
<cfset twoDimensionArray =[]>
<cfset twoDimensionArray[1][1] = 1>
<cfset twoDimensionArray[1][2] = 2>
<cfset twoDimensionArray[2][1] = 3>
<cfset twoDimensionArray[2][2] = 4>
<cfdump var="#twoDimensionArray#">
結果: