我是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]?
他们可以互换吗?只是表达的问题,还是比我知道的更多的东西?
答案 0 :(得分:0)
int[,,]
是一个多维数组。它也被称为矩形阵列,因为它更像是一个X维矩形的整数块(在这种情况下X = 3)。数组的每个切片,行和列分别具有与任何其他切片/行/列相同的大小。
int[][][]
是一组int数组。它更加树木化。它也被称为“锯齿状”数组,因为给定索引处的每个数组都可以有不同的长度。
在许多情况下,两者可以做同样的事情,但他们各自都有自己的优势。矩形阵列具有可预测的“形状”,如果x[a, b, c]
,a
和b
在你的范围内,你不必像c
那样存在偏执在创建数组时设置。您也不必担心为数组的每个级别创建数组和子数组。另一方面,在调整阵列的一部分时,锯齿状阵列可以更灵活,而不需要完成整个过程。
就类似的结构而言,锯齿状数组更接近PHP倾向于处理数组。
答案 1 :(得分:0)
第一个是数组数组,另一个是多维数组。 这是关于这个Arrays
的链接