[英]PHP equivalent to C#'s multi-dimensional array declaration
在C#中你可以这样做:
poules = new int[aantal, aantal, 2];
我在PHP中找不到这样做的方法。 我能找到的只是一个二维数组。
您提供的示例是创建一个3D数组,并通过一个方法获取它(由于使用了一种方法,因此速度稍慢)。 PHP使用锯齿状数组。
PHP中的array
是使用array
函数创建的。 为了匹配你的例子:(对于固定的数组长度)
$myArr = new SplFixedArray($aantal);
for ($i = 0; $i < $aantal; $i++) {
$myArr[$i] = new SplFixedArray($aantal);
for ($j = 0; $j < $aantal; $j++) {
$myArr[$i][$j] = new SplFixedArray(2);
}
}
SplFixedArray
用于定义具有固定大小的数组。
正如评论中所述,您很少会看到如上所述的PHP代码。
你可以像这样访问数组单元格:
$val = $myArr[$x][$y][$z];
这是一个参考: SplFixedArray
我不是C#的人,所以带上一粒盐。 仔细阅读文档之后, new int[aantal, aantal, 2]
似乎是声明多维int
数组的语法,在本例中是一个三维数组。
PHP没有多维数组。 它只有数组,你可以有数组数组。 我猜这在C#中被称为“锯齿状阵列”。 PHP数组也没有输入,没有等价于int[]
。
您可以一次声明/访问多个维度:
$arr = array();
$arr[1][2][3] = 'foo';
PHP将根据需要创建中间数组。 虽然上面的代码执行后没有$arr[0][2][3]
,但是数组是锯齿状的。
如果您需要事先预先分配所有维度,则必须以递归方式循环。 这不是在PHP中经常做的事情,但是你应该调整你的实践来使用锯齿状数组来完成工作。
这将是一个PHP数组:
$poules = array('aantal', 'anntal', '2');
如果aantal
是一个变量,那么没有引号:
$poules = array($aantal, $anntal, '2');
在PHP中,您不需要指定变量类型。 虽然您可以使用它来验证或过滤输入。
您可以在官方文档中阅读有关PHP数组的更多信息:
http://uk3.php.net/manual/en/language.types.array.php
$poules = array('aantal', 'aantal', 2);
或者也是aanta1阵列? 因为在php中你可以这样做:
$myArray = array("some data", array("more data", "in a other array"), array("key1" => "even with keys"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.