1

C# では、次のことができます。

poules = new int[aantal, aantal, 2];

PHPでこれを行う方法が見つかりませんでした。私が見つけることができるのは、2次元配列だけです。

4

4 に答える 4

3

あなたが提示した例は、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

于 2012-12-13T17:07:44.627 に答える
1

私は 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 であまり頻繁に行われることではありませんが、物事を成し遂げるためには、ジャグ配列を操作するようにプラクティスを適応させる必要があります。

于 2012-12-13T17:07:55.623 に答える
0

これはphp配列になります:

$poules = array('aantal', 'anntal', '2');

変数の場合aantalは、引用符なしで同じです:

$poules = array($aantal, $anntal, '2');

PHP では、変数の型を指定する必要はありません。入力の検証またはフィルタリングに使用できますが。

PHP 配列の詳細については、公式ドキュメントを参照してください:
http://uk3.php.net/manual/en/language.types.array.php

于 2012-12-13T17:02:55.963 に答える
0
$poules = array('aantal', 'aantal', 2);

それともaanta1配列もですか?PHPでは次のことができるからです:

$myArray = array("some data", array("more data", "in a other array"), array("key1" => "even with keys"));
于 2012-12-13T17:04:06.407 に答える