首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP相当于C#的多维数组声明

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

Stack Overflow用户
提问于 2012-12-14 01:01:13
回答 4查看 435关注 0票数 1

在C#中,您可以执行以下操作:

代码语言:javascript
复制
poules = new int[aantal, aantal, 2];

我在PHP中找不到这样做的方法。我能找到的只是一个二维数组。

EN

回答 4

Stack Overflow用户

发布于 2012-12-14 01:07:45

您给出的示例是创建一个3D数组,并通过一个方法获取它(因为使用的是方法,所以速度会稍慢一些)。PHP使用交错数组。

PHP中的数组是使用array函数创建的。匹配您的示例:(用于固定数组长度)

代码语言:javascript
复制
$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代码。

您可以像这样访问数组单元:

代码语言:javascript
复制
$val = $myArr[$x][$y][$z];

这里有一个参考:SplFixedArray

票数 3
EN

Stack Overflow用户

发布于 2012-12-14 01:07:56

我不是C#的人,所以对此持保留态度。但是,在仔细研究the documentation之后,new int[aantal, aantal, 2]似乎是声明多维int数组的语法,在本例中是一个三维数组。

PHP没有多维数组。它只有数组,你可以有数组的数组。我猜这在C#中被称为“锯齿数组”。PHP数组也不是类型化的,没有int[]的等价物。

不过,您只需一次声明/访问多个维度:

代码语言:javascript
复制
$arr = array();
$arr[1][2][3] = 'foo';

PHP将根据需要创建中间数组。虽然数组是锯齿状的,但在执行上述代码后没有$arr[0][2][3]

如果你需要预先分配所有维度,你将不得不递归循环。不过,这在PHP中并不是经常做的事情,您应该调整您的实践以使用锯齿数组来完成任务。

票数 1
EN

Stack Overflow用户

发布于 2012-12-14 01:02:56

这将是一个php数组:

代码语言:javascript
复制
$poules = array('aantal', 'anntal', '2');

如果aantal是一个变量,同样的,不带引号:

代码语言:javascript
复制
$poules = array($aantal, $anntal, '2');

在PHP中,您不需要指定变量类型。尽管您可以使用它来验证或过滤输入。

您可以在官方文档中阅读有关PHP数组的更多信息:

http://uk3.php.net/manual/en/language.types.array.php

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13864772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档