array
「array」の意味
「array」とは、主に2つの意味がある。一つ目は、整然と並べられたもの、特にデータ構造の一種である配列を指す。コンピュータプログラミングにおいて、配列は同じ型の複数の要素を格納するために使用される。二つ目の意味は、壮麗な様子や豪華な装いを表す。例えば、結婚式で新婦が身につける豪華なドレスやアクセサリーは、「array」と表現できる。「array」の発音・読み方
「array」の発音は、/əˈreɪ/である。IPAのカタカナ読みでは「アレイ」となる。日本人が発音するカタカナ英語では、「アレイ」と読むことが一般的である。「array」の定義を英語で解説
英語での「array」の定義は次のようになる。"An ordered series or arrangement, especially of items of the same type or having a similar purpose." または "An impressive display or range of a particular type of thing." これらの定義から、「array」は整然と並べられたものや壮麗な様子を表すことがわかる。「array」の類語
「array」の類語としては、「arrangement」「assortment」「collection」「display」「formation」などが挙げられる。これらの単語は、それぞれ異なるニュアンスを持っているが、「array」と同様に、何らかの順序や整然とした構造を表す。「array」に関連する用語・表現
「array」に関連する用語や表現として、「multidimensional array」「sparse array」「dynamic array」などがある。これらは、プログラミングやデータ構造において、配列の特定の形態や特性を表す。「array」の例文
1. The array of data was organized in a table.(データの配列は表で整理されていた。) 2. She was wearing an array of beautiful jewelry.(彼女は美しいジュエリーの数々を身につけていた。) 3. The store had an impressive array of products on display.(その店は見事な品揃えの商品が展示されていた。) 4. The soldiers stood in a neat array.(兵士たちは整然と並んで立っていた。) 5. The programmer used an array to store the values.(プログラマーは配列を使って値を格納した。) 6. The museum showcased an array of historical artifacts.(博物館は歴史的な遺物の数々を展示していた。) 7. The array of stars in the night sky was breathtaking.(夜空の星の配列は息をのむほど美しかった。) 8. The array of colors in the painting was stunning.(絵画の色彩の配列は見事だった。) 9. The chef prepared an array of delicious dishes for the guests.(シェフはゲストのために美味しい料理の数々を用意した。) 10. The scientist analyzed the array of data to find patterns.(科学者はデータの配列を分析してパターンを見つけた。)配列 連想配列
配列
array
array — 配列を生成する
説明
array array ( [mixed ...] )パラメータの配列を返します。パラメータには、 =>演算子によりインデックスを指定することもできます。 配列に関するより詳しい情報は配列型 のセクションをご覧ください。
注意: array()は、実際にはリテラル配列を表現するための 言語構成要素であり、通常の関数ではありません。
カンマで区切った構文 "index => values" は、インデックスと値を定義します。 インデックスは文字列または数値とすることが可能です。 インデックスが省略された場合、0から始まる整数インデックスが自動的に生成されます。 インデックスが整数の場合、次に生成されるインデックスは、 整数インデックスの最大値 + 1 となります。同じインデックスを二度定義した場合、 後の定義により最初の定義が上書きされることに注意してください。
一般的ではないですが、 最後に定義された配列エントリの後に続くカンマがある場合、 これは有効な構文です。
以下の例では、二次元配列の生成方法、連想配列のキーの指定方法、 および通常の配列において添字番号をスキップし、 それに続く要素にアクセスする方法についてご紹介しています。 例 271. array() の例
<?php
$fruits = array (
"fruits" => array("a" => "orange", "b" => "banana", "c" => "apple"),
"numbers" => array(1, 2, 3, 4, 5, 6),
"holes" => array("first", 5 => "second", "third")
);
?>
例 272. array() における自動インデックス
<?php
$array = array(1, 1, 1, 1, 1, 8 => 1, 4 => 1, 19, 3 => 13);
print_r($array);
?>
上の例の出力は以下となります。
Array
(
[0] => 1
[1] => 1
[2] => 1
[3] => 13
[4] => 1
[8] => 1
[9] => 19
)
インデックス '3' は二度定義されており、後の値 13 が保持されることに注意してください。 インデックス 4 はインデックス 8 の後に定義され、 次に生成されるインデックス (値は 19) は、最大のインデックスが 8 であるため、9 となります。
次の例は、1 から始まる配列を作成します。 例 273. array() で 1 から始まる配列を作成
<?php
$firstquarter = array(1 => 'January', 'February', 'March');
print_r($firstquarter);
?>
上の例の出力は以下となります。Array ( [1] => January [2] => February [3] => March )
Perl では、ダブルクオートで囲まれた配列の値にアクセスすることができます。 しかしながら、PHP では配列を中括弧で囲む必要があります。 例 274. ダブルクオートで囲まれた配列にアクセスする
<?php
$foo = array('bar' => 'baz');
echo "Hello {$foo['bar']}!"; // Hello baz!
?>
array_pad()、 list()、 count()、 foreach および range() も参照ください。
配列関数(array)
導入
これらの関数により様々な手法で配列にアクセスし、操作することが可能 になります。配列は、変数の組を保存、管理、操作する基本的な要素です。通常の配列および多次元配列がサポートされており、ユーザが定義したり、 他の関数で作成することも可能です。いくつかのデータベース処理関数は、 データベースのクエリから配列を返しますし、いくつかの関数は配列を返 します。
PHPでの配列の実装や使用方法の詳細については、マニュアルの 配列に関する節を参照下 さい。 その他の配列の操作方法については、 配列演算子も 参照ください。
要件
外部ライブラリを必要としません。インストール手順
PHP コアに含まれるため、 追加のインストール無しで使用できます。実行時設定
設定ディレクティブは定義されていません。リソース型
リソース型は定義されていません。定義済み定数
以下の定数は、PHP コアに含まれており、常に利用可能です。- CASE_LOWER (integer)
- CASE_LOWERは、 array_change_key_case()で使用され、 配列のキーを小文字に変換するために使用されます。小文字は、 array_change_key_case()のデフォルトのケースで もあります。
- CASE_UPPER (integer)
- CASE_UPPERは、 array_change_key_case()で使用され、配列のキー を大文字に変換するために使用されます。
ソース順のフラグ:
- SORT_ASC (integer)
- SORT_ASCは、 array_multisort()でソート順を昇順にするために 使用されます。
- SORT_DESC (integer) (integer)
- SORT_DESCは、 array_multisort()でソート順を降順にするために 使用されます。
ソート型のフラグ: 種々のソート関数で使用されます
- SORT_REGULAR (integer)
- SORT_REGULARは通常の比較するために使用され ます。
- SORT_NUMERIC (integer)
- SORT_NUMERICは数値で比較を行うために使用さ れます。
- SORT_STRING (integer)
- SORT_STRINGは文字列として比較を行うために使 用されます。
- SORT_LOCALE_STRING (integer)
- SORT_LOCALE_STRINGは現在のロケールに基づいた 文字列として比較を行うために使用されます。 PHP 4.4.0と5.0.2で追加 されました。
- COUNT_NORMAL (integer)
- COUNT_RECURSIVE (integer)
- EXTR_OVERWRITE (integer)
- EXTR_SKIP (integer)
- EXTR_PREFIX_SAME (integer)
- EXTR_PREFIX_ALL (integer)
- EXTR_PREFIX_INVALID (integer)
- EXTR_PREFIX_IF_EXISTS (integer)
- EXTR_IF_EXISTS (integer)
- EXTR_REFS (integer)
参考
is_array(), explode(), implode(), split(), preg_split(), および join() も参照してください。目次
- array_change_key_case — 配列のキーを全て小文字または大文字にして返す
- array_chunk — 配列を分割する
- array_combine — 一方の配列をキーとして、もう一方の配列を値として、ひとつの配列を生成する
- array_count_values — 配列の値の数を数える
- array_diff_assoc — 追加された添字の確認を含めて配列の差を計算する
- array_diff_key — キーを基準にして配列の差を計算する
- array_diff_uassoc — ユーザが指定したコールバック関数を利用し、 追加された添字の確認を含めて配列の差を計算する
- array_diff_ukey — キーを基準にし、コールバック関数を用いて配列の差を計算する
- array_diff — 配列の差を計算する
- array_fill_keys — キーを指定して、配列を値で埋める
- array_fill — 配列を指定した値で埋める
- array_filter — コールバック関数を使用する配列要素フィルタ
- array_flip — 配列のキーと値を反転する
- array_intersect_assoc — 追加された添字の確認も含めて配列の共通項を確認する
- array_intersect_key — キーを基準にして配列の共通項を計算する
- array_intersect_uassoc — 追加された添字の確認も含め、コールバック関数を用いて 配列の共通項を確認する
- array_intersect_ukey — キーを基準にし、コールバック関数を用いて 配列の共通項を計算する
- array_intersect — 配列の共通項を計算する
- array_key_exists — 指定したキーまたは添字が配列にあるかどうかを調べる
- array_keys — 配列のキーをすべて返す
- array_map — 指定した配列の要素にコールバック関数を適用する
- array_merge_recursive — 二つ以上の配列を再帰的にマージする
- array_merge — ひとつまたは複数の配列をマージする
- array_multisort — 複数の多次元の配列をソートする
- array_pad — 指定長、指定した値で配列を埋める
- array_pop — 配列の末尾から要素を取り除く
- array_product — 配列の値の積を計算する
- array_push — 一つ以上の要素を配列の最後に追加する
- array_rand — 配列から一つ以上の要素をランダムに取得する
- array_reduce — コールバック関数を用いて配列を普通の値に変更することにより、 配列を再帰的に減らす
- array_reverse — 要素を逆順にした配列を返す
- array_search — 指定した値を配列で検索し、見つかった場合に対応するキーを返す
- array_shift — 配列の先頭から要素を一つ取り出す
- array_slice — 配列の一部を展開する
- array_splice — 配列の一部を削除し、他の要素で置換する
- array_sum — 配列の中の値の合計を計算する
- array_udiff_assoc — データの比較にコールバック関数を用い、 追加された添字の確認を含めて配列の差を計算する
- array_udiff_uassoc — データと添字の比較にコールバック関数を用い、 追加された添字の確認を含めて配列の差を計算する
- array_udiff — データの比較にコールバック関数を用い、配列の差を計算する
- array_uintersect_assoc — データの比較にコールバック関数を用い、 追加された添字の確認も含めて配列の共通項を計算する
- array_uintersect_uassoc — データと添字の比較にコールバック関数を用い、 追加された添字の確認も含めて配列の共通項を計算する
- array_uintersect — データの比較にコールバック関数を用い、配列の共通項を計算する
- array_unique — 配列から重複した値を削除する
- array_unshift — 一つ以上の要素を配列の最初に加える
- array_values — 配列の全ての値を返す
- array_walk_recursive — 配列の全ての要素に、ユーザー関数を再帰的に適用する
- array_walk — 配列の全ての要素にユーザ関数を適用する
- array — 配列を生成する
- arsort — 連想キーと要素との関係を維持しつつ配列を逆順にソートする
- asort — 連想キーと要素との関係を維持しつつ配列をソートする
- compact — 変数名とその値から配列を作成する
- count — 変数に含まれる要素、 あるいはオブジェクトに含まれるプロパティの数を数える
- current — 配列内の現在の要素を返す
- each — 配列から、次のキーと値のペアを返す
- end — 配列の内部ポインタを最終要素にセットする
- extract — 配列からシンボルテーブルに変数をインポートする
- in_array — 配列に値があるかチェックする
- key — 連想配列からキーを取り出す
- krsort — 配列をキーで逆順にソートする
- ksort — 配列をキーでソートする
- list — 配列と同様の形式で、複数の変数への代入を行う
- natcasesort — 大文字小文字を区別しない"自然順"アルゴリズムを用いて配列をソートする
- natsort — "自然順"アルゴリズムで配列をソートする
- next — 内部配列ポインタを進める
- pos — current() のエイリアス
- prev — 内部の配列ポインタをひとつ前に戻す
- range — ある範囲の整数を有する配列を作成する
- reset — 配列の内部ポインタを先頭の要素にセットする
- rsort — 配列を逆順にソートする
- shuffle — 配列をシャッフルする
- sizeof — count() のエイリアス
- sort — 配列をソートする
- uasort — ユーザー定義の比較関数で配列をソートし、連想インデックスを保持する
- uksort — ユーザー定義の比較関数を用いて、キーで配列をソートする
- usort — ユーザー定義の比較関数を使用して、配列を値でソートする
Array クラス
アセンブリ: mscorlib (mscorlib.dll 内)

<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public MustInherit Class Array Implements ICloneable, IList, ICollection, IEnumerable
[SerializableAttribute] [ComVisibleAttribute(true)] public abstract class Array : ICloneable, IList, ICollection, IEnumerable
[SerializableAttribute] [ComVisibleAttribute(true)] public ref class Array abstract : ICloneable, IList, ICollection, IEnumerable

Array クラスは、配列をサポートする言語による各実装の基本クラスです。ただし、システムとコンパイラに限り、Array クラスから明示的に派生させることができます。開発者は、言語によって提供される配列構造を使用する必要があります。
要素は Array 内の値です。Array の長さは、その配列に含まれる要素の合計数ですArray のランクは、Array の次元数です。Array の次元の下限は、Array のその次元の開始インデックスです。多次元 Array では次元ごとに下限が異なることがあります。
![]() |
---|
.NET Framework Version 2.0 では、Array クラスは System.Collections.Generic.IList、System.Collections.Generic.ICollection、および System.Collections.Generic.IEnumerable の各ジェネリック インターフェイスを実装します。この実装は、実行時に配列に提供されるため、ドキュメント作成ツールでは表示できません。したがって、ジェネリック インターフェイスは Array クラスの宣言構文には表示されないので、配列をジェネリック インターフェイス型にキャストすること (明示的なインターフェイスの実装) によってのみアクセスできるインターフェイス メンバに関する参照トピックはありません。配列をこれらのインターフェイスのいずれかにキャストする場合には、要素を追加、挿入、または削除するメンバが NotSupportedException をスローすることに特に注意する必要があります。 |
Type オブジェクトは、配列型宣言の情報を提供します。配列型が同じである Array オブジェクトは、同じ Type オブジェクトを共有します。
配列を Array 型にキャストした場合に、結果が配列ではなくオブジェクトになることもあるため、Type.IsArray および Type.GetElementType は、Array について予測される結果を返さない場合があります。つまり、typeof(System.Array).IsArray は false を返し、typeof(System.Array).GetElementType は null 参照 (Visual Basic では Nothing) を返します。
ほとんどのクラスとは異なり、Array は、遅延バインディングによるアクセスを可能にするために、パブリック コンストラクタではなく CreateInstance メソッドを用意しています。
Array.Copy メソッドでは、同じ型の配列間だけでなく、異なる型の標準配列間でも要素がコピーされます。つまり、自動的に型キャストが処理されます。
CreateInstance、Copy、CopyTo、GetValue および SetValue など、メソッドによっては大容量の配列に対応するために 64 ビット整数をパラメータとして受け取るオーバーロードが用意されています。LongLength および GetLongLength は、配列の長さを示す 64 ビット整数を返します。
Array が並べ替えられることは保証されていません。Array を並べ替える必要のある操作 (BinarySearch など) を実行する前に、Array を並べ替える必要があります。

Array.Copy メソッドを使用して、整数型の配列と Object 型の配列間で要素をコピーする方法を次のコード例で示します。
Public Class SamplesArray Public Shared Sub Main() ' Creates and initializes a new integer array and a new Object array. Dim myIntArray() As Integer = {1, 2, 3, 4, 5} Dim myObjArray() As Object = {26, 27, 28, 29, 30} ' Prints the initial values of both arrays. Console.WriteLine("Initially,") Console.Write("integer array:") PrintValues(myIntArray) Console.Write("Object array: ") PrintValues(myObjArray) ' Copies the first two elements from the integer array to the Object array. Array.Copy(myIntArray, myObjArray, 2) ' Prints the values of the modified arrays. Console.WriteLine(ControlChars.NewLine + "After copying the first two" _ + " elements of the integer array to the Object array ,") Console.Write("integer array:") PrintValues(myIntArray) Console.Write("Object array: ") PrintValues(myObjArray) ' Copies the last two elements from the Object array to the integer array. Array.Copy(myObjArray, myObjArray.GetUpperBound(0) - 1, myIntArray, _ myIntArray.GetUpperBound(0) - 1, 2) ' Prints the values of the modified arrays. Console.WriteLine(ControlChars.NewLine + "After copying the last two" _ + " elements of the Object array to the integer array ,") Console.Write("integer array:") PrintValues(myIntArray) Console.Write("Object array: ") PrintValues(myObjArray) End Sub Overloads Public Shared Sub PrintValues(myArr() As Object) Dim i As Object For Each i In myArr Console.Write(ControlChars.Tab + "{0}", i) Next i Console.WriteLine() End Sub Overloads Public Shared Sub PrintValues(myArr() As Integer) Dim i As Integer For Each i In myArr Console.Write(ControlChars.Tab + "{0}", i) Next i Console.WriteLine() End Sub End Class ' This code produces the following output. ' ' Initially, ' integer array: 1 2 3 4 5 ' Object array: 26 27 28 29 30 ' ' After copying the first two elements of the integer array to the Object array, ' integer array: 1 2 3 4 5 ' Object array: 1 2 28 29 30 ' ' After copying the last two elements of the Object array to the integer array, ' integer array: 1 2 3 29 30 ' Object array: 1 2 28 29 30
public class SamplesArray { public static void Main() { // Creates and initializes a new integer array and a new Object array. int[] myIntArray = new int[5] { 1, 2, 3, 4, 5 }; Object[] myObjArray = new Object[5] { 26, 27, 28, 29, 30 }; // Prints the initial values of both arrays. Console.WriteLine( "Initially," ); Console.Write( "integer array:" ); PrintValues( myIntArray ); Console.Write( "Object array: " ); PrintValues( myObjArray ); // Copies the first two elements from the integer array to the Object array. Array.Copy( myIntArray, myObjArray, 2 ); // Prints the values of the modified arrays. Console.WriteLine( "\nAfter copying the first two elements of the integer array to the Object array," ); Console.Write( "integer array:" ); PrintValues( myIntArray ); Console.Write( "Object array: " ); PrintValues( myObjArray ); // Copies the last two elements from the Object array to the integer array. Array.Copy( myObjArray, myObjArray.GetUpperBound(0) - 1, myIntArray, myIntArray.GetUpperBound(0) - 1, 2 ); // Prints the values of the modified arrays. Console.WriteLine( "\nAfter copying the last two elements of the Object array to the integer array," ); Console.Write( "integer array:" ); PrintValues( myIntArray ); Console.Write( "Object array: " ); PrintValues( myObjArray ); } public static void PrintValues( Object[] myArr ) { foreach ( Object i in myArr ) { Console.Write( "\t{0}", i ); } Console.WriteLine(); } public static void PrintValues( int[] myArr ) { foreach ( int i in myArr ) { Console.Write( "\t{0}", i ); } Console.WriteLine(); } } /* This code produces the following output. Initially, integer array: 1 2 3 4 5 Object array: 26 27 28 29 30 After copying the first two elements of the integer array to the Object array, integer array: 1 2 3 4 5 Object array: 1 2 28 29 30 After copying the last two elements of the Object array to the integer array, integer array: 1 2 3 29 30 Object array: 1 2 28 29 30 */
using namespace System; void main1(); void main2(); void main() { main1(); Console::WriteLine(); main2(); } void PrintValues( array<Object^>^myArr ); void PrintValues( array<int>^myArr ); void main1() { // Creates and initializes a new int array and a new Object array. array<int>^myIntArray = {1,2,3,4,5}; array<Object^>^myObjArray = {26,27,28,29,30}; // Prints the initial values of both arrays. Console::WriteLine( "Initially," ); Console::Write( "int array: " ); PrintValues( myIntArray ); Console::Write( "Object array:" ); PrintValues( myObjArray ); // Copies the first two elements from the int array to the Object array. Array::Copy( myIntArray, myObjArray, 2 ); // Prints the values of the modified arrays. Console::WriteLine( "\nAfter copying the first two elements of the int array to the Object array," ); Console::Write( "int array: " ); PrintValues( myIntArray ); Console::Write( "Object array:" ); PrintValues( myObjArray ); // Copies the last two elements from the Object array to the int array. Array::Copy( myObjArray, myObjArray->GetUpperBound( 0 ) - 1, myIntArray, myIntArray->GetUpperBound( 0 ) - 1, 2 ); // Prints the values of the modified arrays. Console::WriteLine( "\nAfter copying the last two elements of the Object array to the int array," ); Console::Write( "int array: " ); PrintValues( myIntArray ); Console::Write( "Object array:" ); PrintValues( myObjArray ); } void PrintValues( array<Object^>^myArr ) { for ( int i = 0; i < myArr->Length; i++ ) { Console::Write( "\t{0}", myArr[ i ] ); } Console::WriteLine(); } void PrintValues( array<int>^myArr ) { for ( int i = 0; i < myArr->Length; i++ ) { Console::Write( "\t{0}", myArr[ i ] ); } Console::WriteLine(); } /* This code produces the following output. Initially, int array: 1 2 3 4 5 Object array: 26 27 28 29 30 After copying the first two elements of the int array to the Object array, int array: 1 2 3 4 5 Object array: 1 2 28 29 30 After copying the last two elements of the Object array to the int array, int array: 1 2 3 29 30 Object array: 1 2 28 29 30 */
public class SamplesArray { public static void main(String[] args) { // Creates and initializes a new integer array and a new Object array. int myIntArray[] = new int[] { 1, 2, 3, 4, 5 }; Object myObjArray[] = new Object[] { (Int32)26, (Int32)27, (Int32)28, (Int32)29, (Int32)30}; // Prints the initial values of both arrays. Console.WriteLine("Initially,"); Console.Write("integer array:"); PrintValues(myIntArray); Console.Write("Object array: "); PrintValues(myObjArray); // Copies the first two elements from the integer array to the // Object array. Array.Copy(myIntArray, myObjArray, 2); // Prints the values of the modified arrays. Console.WriteLine("\nAfter copying the first two elements of the" + " integer array to the Object array,"); Console.Write("integer array:"); PrintValues(myIntArray); Console.Write("Object array: "); PrintValues(myObjArray); // Copies the last two elements from the Object array to the // integer array. Array.Copy(myObjArray, myObjArray.GetUpperBound(0) - 1, myIntArray, myIntArray.GetUpperBound(0) - 1, 2); // Prints the values of the modified arrays. Console.WriteLine("\nAfter copying the last two elements of the Object" + " array to the integer array,"); Console.Write("integer array:"); PrintValues(myIntArray); Console.Write("Object array: "); PrintValues(myObjArray); } //main public static void PrintValues(Object myArr[]) { Object i = null; for (int iCtr = 0; iCtr < myArr.get_Length(); iCtr++) { i = myArr[iCtr]; Console.Write("\t{0}", i); } Console.WriteLine(); } //PrintValues public static void PrintValues(int myArr[]) { int i = 0; for (int iCtr = 0; iCtr < myArr.get_Length(); iCtr++) { i = myArr[iCtr]; Console.Write("\t{0}", (Int32)i); } Console.WriteLine(); } //PrintValues } //SamplesArray /* This code produces the following output. Initially, integer array: 1 2 3 4 5 Object array: 26 27 28 29 30 After copying the first two elements of the integer array to the Object array, integer array: 1 2 3 4 5 Object array: 1 2 28 29 30 After copying the last two elements of the Object array to the integer array, integer array: 1 2 3 29 30 Object array: 1 2 28 29 30 */
Array を作成および初期化し、そのプロパティと要素を表示するコード例を次に示します。
Public Class SamplesArray2 Public Shared Sub Main() ' Creates and initializes a new three-dimensional Array of ' type Int32. Dim myArr As Array = Array.CreateInstance(GetType(Int32), 2, 3, 4) Dim i As Integer For i = myArr.GetLowerBound(0) To myArr.GetUpperBound(0) Dim j As Integer For j = myArr.GetLowerBound(1) To myArr.GetUpperBound(1) Dim k As Integer For k = myArr.GetLowerBound(2) To myArr.GetUpperBound(2) myArr.SetValue(i * 100 + j * 10 + k, i, j, k) Next k Next j Next i ' Displays the properties of the Array. Console.WriteLine("The Array has {0} dimension(s) and a " _ + "total of {1} elements.", myArr.Rank, myArr.Length) Console.WriteLine(ControlChars.Tab + "Length" + ControlChars.Tab _ + "Lower" + ControlChars.Tab + "Upper") For i = 0 To myArr.Rank - 1 Console.Write("{0}:" + ControlChars.Tab + "{1}", i, _ myArr.GetLength(i)) Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab _ + "{1}", myArr.GetLowerBound(i), myArr.GetUpperBound(i)) Next i ' Displays the contents of the Array. Console.WriteLine("The Array contains the following values:") PrintValues(myArr) End Sub Public Shared Sub PrintValues(myArr As Array) Dim myEnumerator As System.Collections.IEnumerator = _ myArr.GetEnumerator() Dim i As Integer = 0 Dim cols As Integer = myArr.GetLength(myArr.Rank - 1) While myEnumerator.MoveNext() If i < cols Then i += 1 Else Console.WriteLine() i = 1 End If Console.Write(ControlChars.Tab + "{0}", myEnumerator.Current) End While Console.WriteLine() End Sub End Class ' This code produces the following output. ' ' The Array has 3 dimension(s) and a total of 24 elements. ' Length Lower Upper ' 0: 2 0 1 ' 1: 3 0 2 ' 2: 4 0 3 ' The Array contains the following values: ' 0 1 2 3 ' 10 11 12 13 ' 20 21 22 23 ' 100 101 102 103 ' 110 111 112 113 ' 120 121 122 123
public class SamplesArray2{ public static void Main() { // Creates and initializes a new three-dimensional Array of type Int32. Array myArr = Array.CreateInstance( typeof(Int32), 2, 3, 4 ); for ( int i = myArr.GetLowerBound(0); i <= myArr.GetUpperBound(0); i++ ) for ( int j = myArr.GetLowerBound(1); j <= myArr.GetUpperBound(1); j++ ) for ( int k = myArr.GetLowerBound(2); k <= myArr.GetUpperBound(2); k++ ) { myArr.SetValue( (i*100)+(j*10)+k, i, j, k ); } // Displays the properties of the Array. Console.WriteLine( "The Array has {0} dimension(s) and a total of {1} elements.", myArr.Rank, myArr.Length ); Console.WriteLine( "\tLength\tLower\tUpper" ); for ( int i = 0; i < myArr.Rank; i++ ) { Console.Write( "{0}:\t{1}", i, myArr.GetLength(i) ); Console.WriteLine( "\t{0}\t{1}", myArr.GetLowerBound(i), myArr.GetUpperBound(i) ); } // Displays the contents of the Array. Console.WriteLine( "The Array contains the following values:" ); PrintValues( myArr ); } public static void PrintValues( Array myArr ) { System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator(); int i = 0; int cols = myArr.GetLength( myArr.Rank - 1 ); while ( myEnumerator.MoveNext() ) { if ( i < cols ) { i++; } else { Console.WriteLine(); i = 1; } Console.Write( "\t{0}", myEnumerator.Current ); } Console.WriteLine(); } } /* This code produces the following output. The Array has 3 dimension(s) and a total of 24 elements. Length Lower Upper 0: 2 0 1 1: 3 0 2 2: 4 0 3 The Array contains the following values: 0 1 2 3 10 11 12 13 20 21 22 23 100 101 102 103 110 111 112 113 120 121 122 123 */
void PrintValues( Array^ myArr ); void main2() { // Creates and initializes a new three-dimensional Array instance of type Int32. Array^ myArr = Array::CreateInstance( Int32::typeid, 2, 3, 4 ); for ( int i = myArr->GetLowerBound( 0 ); i <= myArr->GetUpperBound( 0 ); i++ ) { for ( int j = myArr->GetLowerBound( 1 ); j <= myArr->GetUpperBound( 1 ); j++ ) { for ( int k = myArr->GetLowerBound( 2 ); k <= myArr->GetUpperBound( 2 ); k++ ) myArr->SetValue( (i * 100) + (j * 10) + k, i, j, k ); } } // Displays the properties of the Array. Console::WriteLine( "The Array instance has {0} dimension(s) and a total of {1} elements.", myArr->Rank, myArr->Length ); Console::WriteLine( "\tLength\tLower\tUpper" ); for ( int i = 0; i < myArr->Rank; i++ ) { Console::Write( "{0}:\t{1}", i, myArr->GetLength( i ) ); Console::WriteLine( "\t{0}\t{1}", myArr->GetLowerBound( i ), myArr->GetUpperBound( i ) ); } Console::WriteLine( "The Array instance contains the following values:" ); PrintValues( myArr ); } void PrintValues( Array^ myArr ) { System::Collections::IEnumerator^ myEnumerator = myArr->GetEnumerator(); int i = 0; int cols = myArr->GetLength( myArr->Rank - 1 ); while ( myEnumerator->MoveNext() ) { if ( i < cols ) i++; else { Console::WriteLine(); i = 1; } Console::Write( "\t{0}", myEnumerator->Current ); } Console::WriteLine(); } /* This code produces the following output. The Array instance has 3 dimension(s) and a total of 24 elements. Length Lower Upper 0: 2 0 1 1: 3 0 2 2: 4 0 3 The Array instance contains the following values: 0 1 2 3 10 11 12 13 20 21 22 23 100 101 102 103 110 111 112 113 120 121 122 123 */
public class SamplesArray2 { public static void main(String[] args) { // Creates and initializes a new three-dimensional Array of type Int32. Array myArr = Array.CreateInstance(Int32.class.ToType(), 2, 3, 4); for (int i = myArr.GetLowerBound(0); i <= myArr.GetUpperBound(0); i++) { for (int j = myArr.GetLowerBound(1); j <= myArr.GetUpperBound(1); j++) { for (int k = myArr.GetLowerBound(2); k <= myArr. GetUpperBound(2); k++) { myArr.SetValue((Int32)(i * 100 + j * 10 + k), i, j, k); } } } // Displays the properties of the Array. Console.WriteLine("The Array has {0} dimension(s) and a total of" + " {1} elements.", System.Convert.ToString(myArr.get_Rank()), System.Convert.ToString(myArr.get_Length())); Console.WriteLine("\tLength\tLower\tUpper"); for (int i = 0; i < myArr.get_Rank(); i++) { Console.Write("{0}:\t{1}", System.Convert.ToString(i), System.Convert.ToString(myArr.GetLength(i))); Console.WriteLine("\t{0}\t{1}", System.Convert.ToString(myArr. GetLowerBound(i)), System.Convert.ToString(myArr. GetUpperBound(i))); } // Displays the contents of the Array. Console.WriteLine("The Array contains the following values:"); PrintValues(myArr); } //main public static void PrintValues(Array myArr) { System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator(); int i = 0; int cols = myArr.GetLength(myArr.get_Rank() - 1); while (myEnumerator.MoveNext()) { if (i < cols) { i++; } else { Console.WriteLine(); i = 1; } Console.Write("\t{0}", myEnumerator.get_Current()); } Console.WriteLine(); } //PrintValues } //SamplesArray2 /* This code produces the following output. The Array has 3 dimension(s) and a total of 24 elements. Length Lower Upper 0: 2 0 1 1: 3 0 2 2: 4 0 3 The Array contains the following values: 0 1 2 3 10 11 12 13 20 21 22 23 100 101 102 103 110 111 112 113 120 121 122 123 */

System.Array

この型の public static (Visual Basic では Shared) メンバは、スレッド セーフです。すべてのインスタンス メンバがスレッド セーフになるかどうかは保証されていません。
この実装は、Array 用の同期された (スレッド セーフな) ラッパーは提供しませんが、Array に基づく .NET Framework クラスでは、SyncRoot プロパティを使用して、独自にコレクションを同期させることができます。
コレクションの列挙処理は、本質的にはスレッド セーフな処理ではありません。コレクションが同期されている場合でも、他のスレッドがそのコレクションを変更する可能性はあり、そのような状況が発生すると列挙子は例外をスローします。列挙処理を確実にスレッド セーフに行うには、列挙中にコレクションをロックするか、他のスレッドによって行われた変更によってスローされる例外をキャッチします。

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Array プロパティ
Array メソッド


名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | System.Collections.IList.Add | IList.Add を実装します。常に NotSupportedException をスローします。 |
![]() | System.Collections.IList.Clear | Array 内のすべての要素を、要素の型に応じて、0 (ゼロ)、false、または null 参照 (Visual Basic では Nothing) に設定します。 |
![]() | System.Collections.IList.Contains | ある要素が Array 内に存在するかどうかを判断します。 |
![]() | System.Collections.IList.IndexOf | 指定したオブジェクトを検索し、現在の 1 次元インスタンス内でそのオブジェクトが最初に見つかった位置のインデックス番号を返します。 |
![]() | System.Collections.IList.Insert | IList.Insert を実装します。常に NotSupportedException をスローします。 |
![]() | System.Collections.IList.Remove | IList.Remove を実装します。常に NotSupportedException をスローします。 |
![]() | System.Collections.IList.RemoveAt | IList.RemoveAt を実装します。常に NotSupportedException をスローします。 |

Array メンバ
配列の作成、操作、検索、および並べ替えを行うメソッドを提供します。これにより、共通言語ランタイムのすべての配列の基本クラスとして機能します。
Array データ型で公開されるメンバを以下の表に示します。



名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | System.Collections.IList.Add | IList.Add を実装します。常に NotSupportedException をスローします。 |
![]() | System.Collections.IList.Clear | Array 内のすべての要素を、要素の型に応じて、0 (ゼロ)、false、または null 参照 (Visual Basic では Nothing) に設定します。 |
![]() | System.Collections.IList.Contains | ある要素が Array 内に存在するかどうかを判断します。 |
![]() | System.Collections.IList.IndexOf | 指定したオブジェクトを検索し、現在の 1 次元インスタンス内でそのオブジェクトが最初に見つかった位置のインデックス番号を返します。 |
![]() | System.Collections.IList.Insert | IList.Insert を実装します。常に NotSupportedException をスローします。 |
![]() | System.Collections.IList.Remove | IList.Remove を実装します。常に NotSupportedException をスローします。 |
![]() | System.Collections.IList.RemoveAt | IList.RemoveAt を実装します。常に NotSupportedException をスローします。 |
![]() | System.Collections.IList.Item | 指定したインデックスにある要素を取得または設定します。 |

array
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/04/29 13:43 UTC 版)
「Standard Template Library」の記事における「array」の解説
※この「array」の解説は、「Standard Template Library」の解説の一部です。
「array」を含む「Standard Template Library」の記事については、「Standard Template Library」の概要を参照ください。
- arrayのページへのリンク