建立陣列

使用 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#">

結果:

StackOverflow 文件

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#">

結果:

StackOverflow 文件

每個元素都包含另一個 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#">

StackOverflow 文件

替代明確宣告

你也可以將 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#">

結果:

StackOverflow 文件