繁体   English   中英

PHP相当于C#的多维数组声明

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM