ゲームの開発、マップの描画、テーブルの設計、または座標データの管理の場合、多くの場合、2次元配列(Matrix)構造を構築する必要があります。 PHPは非常に便利な機能-ARRAY_FILL()を提供します。これは、1次元の配列をすばやく埋めるだけでなく、初期化された2次元ボードまたはマップ構造を簡単に構築するのにも役立ちます。
この記事では、 array_fill()の基本的な使用法を導入し、8x8チェスボードなどの通常の2次元グリッド構造を構築するために使用する方法を示します。
array_fill()はPHPの組み込み関数の1つであり、その構文は次のとおりです。
array_fill(int $start_index, int $count, mixed $value): array
$ start_index :indexを開始します。
$ count :埋める要素の数。
$値:各要素の値。
例:
$line = array_fill(0, 5, 0);
// 結果: [0, 0, 0, 0, 0]
8x8ボードやマップなどの2次元配列を構築するには、 array_fill()を使用して各行をループで埋めることができます。
<?php
$rows = 8;
$cols = 8;
$board = [];
for ($i = 0; $i < $rows; $i++) {
$board[$i] = array_fill(0, $cols, 0);
}
// 打印結果查看结构
echo '<pre>';
print_r($board);
echo '</pre>';
出力$ボードは8行と8列の2D配列であり、すべてのグリッドは0に初期化されます。 「空」 、 null 、またはfalseなど、必要に応じて0を他のタグに置き換えることができます。
たとえば、デフォルトの地形を「草」として、10x10マップを構築する必要があります。
<?php
$width = 10;
$height = 10;
$map = [];
for ($y = 0; $y < $height; $y++) {
$map[$y] = array_fill(0, $width, 'grass');
}
// 一部の座標が設定されると仮定します "water"
$map[2][3] = 'water';
$map[4][7] = 'water';
$map[5][5] = 'mountain';
// マップ配列を表示します
echo '<pre>';
print_r($map);
echo '</pre>';
この方法は、初期の地形でマップを構築するために使用できます。これは、その後のマップインターフェイスの変更またはレンダリングに便利です。
たとえば、各グリッドに対応するデータインターフェイスアドレスを提供する場合は、クリックしてグリッドの詳細ページにジャンプします。これを行うことができます。
<?php
$rows = 5;
$cols = 5;
$grid = [];
for ($i = 0; $i < $rows; $i++) {
$grid[$i] = [];
for ($j = 0; $j < $cols; $j++) {
$grid[$i][$j] = "https://m66.net/grid.php?x={$i}&y={$j}";
}
}
echo '<pre>';
print_r($grid);
echo '</pre>';
このようにして、各グリッドは、 https://m66.net/grid.php?x= 2&y = 3などの特定のURLに対応します。
この記事を通して、あなたは学ぶことができます:
array_fill()を使用して、1次元配列をすばやく初期化します。
array_fill()でループすることにより、通常の2次元配列構造を構築する方法。
座標に基づいて、より多くの構造化または動的コンテンツ(マップ、リンクなど)を埋める方法。
この方法はシンプルで効率的であり、マップ、チェスボード、テーブルなどの2次元構造を構築する理想的な方法です。
ディスプレイをさらに美化したり、スタイルを追加したり、実際のプロジェクトでJavaScriptと動的に対話したりする場合は、生成されたデータをフロントエンドに渡して、より高度な効果を実現することができます。