配列宣言コマンドはそれぞれ、1次元または2次元の配列を作成またはサイズ変更ができます。次に例を示します:
  ARRAY TEXT(atTopics;100;50) 
2次元配列は、本質的にはランゲージオブジェクトなため、表示も印刷もできません。
 この例で、
- atTopicsは、2次元配列です。
- atTopics{8}{5}は、8行5列目の要素です。
- atTopics{20}は、20行目でそれ自身は1次元配列です。
- Size of array(atTopics)は、行数の100を返します。
- Size of array(atTopics{17})は、17行目の列数である50を返します。
以下の例では、データベースの各テーブルの各フィールドへのポインタが2次元配列に格納されます:
  C_LONGINT($vlLastTable;$vlLastField)
 C_LONGINT($vlFieldNumber)
  
 $vlLastTable:=Get last table number
 ARRAY POINTER(<>apFields;$vlLastTable;0) 
  
 For($vlTable;1;$vlLastTable)
    If(Is table number valid($vlTable))
       $vlLastField:=Get last field number($vlTable)
  
       $vlColumnNumber:=0
       For($vlField;1;$vlLastField)
          If(Is field number valid($vlTable;$vlField))
             $vlColumnNumber:=$vlColumnNumber+1
  
             INSERT IN ARRAY(<>apFields{$vlTable};$vlColumnNumber;1)
  
             <>apFields{$vlTable}{$vlColumnNumber}:=Field($vlTable;$vlField)
          End if
       End for
    End if
 End for
この2次元配列が初期化されたあと、以下の方法で特定のテーブルのフィールドへのポインタを取得できます:
  
 COPY ARRAY(<>apFields{Table(Current form table)};$apTheFieldsIamWorkingOn)
  
 For($vlElem;1;Size of array($apTheFieldsIamWorkingOn))
    Case of
       :(Type($apTheFieldsIamWorkingOn{$vlElem}->)=Is date)
          $apTheFieldsIamWorkingOn{$vlElem}->:=Current date
       :(Type($apTheFieldsIamWorkingOn{$vlElem}->)=Is Boolean)
          $apTheFieldsIamWorkingOn{$vlElem}->:=True
    End case
 End for
 Note: この例でわかるように、2次元配列の行のそれぞれの列数は同じサイズでも異なるサイズでも構いません。