0

私はC#が初めてで、C#からPHPにいくつかのプログラムを移植したいと思っています

私にとって奇妙なことの1つは、

double[][] rate = { new double[] { 1, 2, 3, 4, 5 },
                    new double[] { 2, 4, 6, 8, 10}
                  };
double[,,] quest = {{{1,2,3,4}, {1,1,2,3}, {2,3,4,5}},
                    {{2,3,4,5}, {1,1,1,1}, {3,3,3,3}}
                   };

for ( int i = 0; i < f.Length; i++ ){
    dummy = rate[i][(int)quest[1, 1, 1] - 3];
}

私の質問は、なぜ cube-array quest[1,1,1] をこのように呼び出すことができるのですか?なぜ PHP のように array rate[i][blah] を呼び出すのでしょうか?

それらは互換的に機能しますか?単なる表現の問題か、それとも私が知っている以上の何か?

4

2 に答える 2

0

int[,,]多次元配列です。X 次元の int の長方形ブロック (この場合は X=3) に似ているため、長方形配列とも呼ばれます。配列の各スライス、行、および列は、それぞれ他のスライス/行/列と同じサイズです。

int[][][]int の配列の配列の配列です。より木目調です。特定のインデックスの各配列の長さが異なる場合があるため、「ギザギザ」配列とも呼ばれます。

多くの場合、この 2 つは同じことを行うことができますが、それぞれに長所があります。長方形配列には予測可能な「形状」があり、配列を作成したときに設定した範囲内にある場合、x[a, b, c]が存在するかどうかについて偏執的である必要はありません。また、配列のレベルごとに配列とサブ配列を作成することについて心配する必要もありません。一方、ジャグ配列は、全体を行わずに配列の一部をサイズ変更および拡張する場合により柔軟になります。abc

類似の構造に関する限り、ギザギザ配列は PHP が配列を処理する傾向に近いです。

于 2013-06-27T01:59:09.470 に答える
0

最初のものは配列の配列で、もう 1 つは多次元配列です。これは、この配列に関するリンクトークです

于 2013-06-27T01:59:51.217 に答える