配列について

配列は、データを保持するためのテーブル構造です。大きさと次元が明確に定義されたスプレッドシートのテーブルに似ています。
ColdFusion では、データを一時的に保存する場所として配列がよく使用されます。例えば、オンラインで商品を注文できるサイトの場合は、ショッピングカートの内容を配列に保持しておくことができます。配列を使用すると、注文が確定されるまでの間にショッピングカートの内容が変化しても、データベースに情報をコミットせずに済むようになります。

配列の基本概念

ColdFusion 配列の説明では、次の用語を使用します。

  • 配列の次元:配列構造の相対的な複雑さの度合い。
  • インデックス:特定の次元における要素の位置。通常は括弧で囲みます(my1Darray1、my2Darray11、my3Darray111)。
  • 配列要素:配列のインデックスが示す位置に保存されているデータ。最も単純な配列は、1 次元の配列です。これは、テーブルの単一の行に似ています。1 次元配列には、名前(変数名)と数値インデックスがあります。インデックス番号は、配列内の 1 つのエントリ(セル)を参照します。
    したがって、次のステートメントでは、MyArray という 1 次元配列の 5 番目のエントリの値が "Robert" に設定されます。
<cfset MyArray[5] = &quot;Robert&quot;>

2 次元配列は、簡単なテーブルに似ています。3 次元配列は、キューブ状のデータと考えることができます。ColdFusion で直接作成できる配列は、3 次元までです。4 次元以上の配列は、複数のステートメントを使用して作成します。

my2darray13="Paul" というシンタックスは、My2dArray という 2 次元配列のインデックス 13 の要素に、値 "Paul" を代入することを表します。

ColdFusion 配列について

ColdFusion の配列は、一般的な配列と異なり、ダイナミックな構造を持っています。例えば、一般的な配列はサイズが一定で対称形です。これに対して、ColdFusion の配列では、データの追加または削除が可能で、各行の長さが異なります。
一般的な 2 次元配列は、個々のセルで構成された固定サイズのテーブルに似ています。
ColdFusion の 2 次元配列は、実際には、一連の 1 次元配列が含まれている 1 次元配列です。1 つの行を構成する各配列は、他の列とは独立して拡大したり縮小したりできます。
次の図は、ColdFusion の 2 次元配列です。

ColdFusion の 3 次元配列は、1 次元配列を 3 回ネストした配列です。一般的な 3 次元配列と ColdFusion の 3 次元配列にも同様な違いがありますが、紙面で表すのは難しいので 2 次元で説明します。
ダイナミックな配列は、データを追加すると拡大され、データを削除すると縮小されます。

ネガティブインデックス

ネガティブインデックスを使用して配列の要素を取得できます。例えば、配列 "arr" に "n" 要素がある場合、

  • arr[-1] は a[n] を返す
  • arr[-2] は a[n-1] を返す
  • ...

次に例を示します。

<cfscript>
  animals = ['cat', 'dog', 'fish', 'bison'];
      writeOutput(animals[-1]); //gets the last element
      writeOutput(animals[-2]); //gets the last but one element
</cfscript>

ネガティブインデックスを多次元配列で使用することもできます。次に例を示します。

<cfscript>
 arr = ArrayNew(2);
 // Build first album array, Surfin' Safari
 arr[1][1] = &quot;Surfin' Safari&quot;;
 arr[1][2] = &quot;County Fair&quot;;
 arr[1][3] = &quot;Ten Little Indians&quot;;
 // Build second album array, Surfin' USA
 arr[2][1] = &quot;Surfin' USA&quot;;
 arr[2][2] = &quot;Farmer's Daughter&quot;;
 arr[2][3] = &quot;Miserlou&quot;;
 // Build third album array, Surfer Girl
 arr[3][1] = &quot;Surfer Girl&quot;;
 arr[3][2] = &quot;Catch a Wave&quot;;
 arr[3][3] = &quot;The Surfer Moon&quot;;
 writeDump(arr)
 writedump(arr[-1])
 writedump(arr[-1][1]) //  Surfer Girl
 writedump(arr[-1][2]) // Catch a Wave
 writedump(arr[-1][3]) // The Surfer Moon
 writedump(arr[-1][-1]) // The Surfer Moon
 writedump(arr[-1][-2]) // Catch a Wave
 writedump(arr[-1][-3]) // Surfer Girl
 writedump(arr[-3])
</cfscript>

ヘルプをすばやく簡単に入手

新規ユーザーの場合

Adobe MAX 2025

Adobe MAX Japan
クリエイターの祭典

2025 年 2 月 13 日
東京ビッグサイト