在将C#移植到PHP时调用数组

时间:2013-06-27 01:47:48

标签: c# arrays dictionary

我是C#的新手,想要将一些程序从C#移植到PHP

对我来说有一点奇怪的是,

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中调用数组速率[i] [blah]?

他们可以互换吗?只是表达的问题,还是比我知道的更多的东西?

2 个答案:

答案 0 :(得分:0)

int[,,]是一个多维数组。它也被称为矩形阵列,因为它更像是一个X维矩形的整数块(在这种情况下X = 3)。数组的每个切片,行和列分别具有与任何其他切片/行/列相同的大小。

int[][][]是一组int数组。它更加树木化。它也被称为“锯齿状”数组,因为给定索引处的每个数组都可以有不同的长度。

在许多情况下,两者可以做同样的事情,但他们各自都有自己的优势。矩形阵列具有可预测的“形状”,如果x[a, b, c]ab在你的范围内,你不必像c那样存在偏执在创建数组时设置。您也不必担心为数组的每个级别创建数组和子数组。另一方面,在调整阵列的一部分时,锯齿状阵列可以更灵活,而不需要完成整个过程。

就类似的结构而言,锯齿状数组更接近PHP倾向于处理数组。

答案 1 :(得分:0)

第一个是数组数组,另一个是多维数组。 这是关于这个Arrays

的链接