在 C# 中,您可以这样做:
poules = new int[aantal, aantal, 2];
我在 PHP 中找不到这样做的方法。我能找到的只是一个二维数组。
您提供的示例是创建一个 3D 数组,并通过一种方法获取它(这有点慢,因为使用了一种方法)。PHP 使用锯齿状数组。
PHP 中的数组是使用该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
数组的语法,在这种情况下是一个 3 维数组。
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"));