2011-12-16 9 views
0

可能性の重複:
How to create an empty array in PHP with predefined size?はすぐにPHPで大きな配列を作成

Cベースの言語で

は、あなたは非常に迅速にあなたが使用する可能性のある大規模な多次元配列を作成することができますアルゴリズムなどのループとの組み合わせ同様に:

int foo[50][40]; 

PHPでは、どうすればよいですか?あなたは「準備中」の配列を作成する必要はありませんPHPベースの言語で

$bar = array(); 
for ($a = 0; $a<50; $a++) { 
    for ($b = 0; $b++; $b<40) { 
     $bar[$a][$b] = 0; 
    } 
} 
+0

@Polity - 私は、検索をしたが、しかし正しいことを探していませんでした - 閉じるために投票しました! –

答えて

2

、あなたは配列のサイズを事前に定義する必要はありません、あなたは動的にそうように、データとそれを追加することができます

$bar = array(); 
for($i = 0;$i < 50;$i++) { 
    $bar[] = $i; 
} 

を[]と$バーを呼び出すことによって、あなたはよ新しいキーを作成する必要があり、この場合は値$ iを保持することを示します。

+0

QAはすでにこの解決策を彼の質問に掲載しています... – Polity

+0

@Polity OPは配列の構築がC-wayと似ていると仮定していますが、私はそれがそうではないことを実証しています。 – Oldskool

0

:現時点では、私は考えることができる唯一の方法はこれです。
しかし、必要に応じて、すぐに必要な数の要素をすぐに追加できます。

ところで、スピードが簡潔なコードではなく実行の速度を意味する場合、PHPはすでに間違った選択です。

PHPで
+1

事前に定義された順序でインデックスにアクセスしていない多くの場合、これは実際的ではありません – Polity

0

は、以下のことを試してみてください。SplFixedArrayを使用して

$bar = range(0, 50); 
foreach ($bar as $k => $v) { 
    $bar[$k] = range(0, 40); 
}; 
+0

try - 何のために? –

2

はそれをスピードアップする(そしてまた、それは、より少ないメモリを占有します)します。

+0

+1 SplFixedArrayの場合...特に制限がありますが、特に多次元配列を作成する場合 –

0

多分これは助けることができる:真

$b = array_fill(0,50,0); 
    $a = array_fill(0,50,$b); 
//and so on, depending on how many dimensions do you need 
関連する問題