Bei der Entwicklung von Spielen, dem Zeichnen von Karten, dem Entwerfen von Tabellen oder dem Verwalten von Koordinatendaten müssen wir häufig eine zweidimensionale Array-Struktur (Matrix) erstellen. PHP bietet eine sehr bequeme Funktion- Array_Fill () , die nicht nur schnell ein eindimensionales Array füllt, sondern uns auch dabei hilft, eine initialisierte zweidimensionale Karte oder eine Kartenstruktur leicht zu erstellen.
In diesem Artikel wird die grundlegende Verwendung von Array_Fill () vorgestellt und demonstriert, wie sie eine regelmäßige zweidimensionale Gitterstruktur wie eine 8x8-Schachkarte erstellen.
Array_Fill () ist eine der integrierten Funktionen in PHP, und seine Syntax lautet wie folgt:
array_fill(int $start_index, int $count, mixed $value): array
$ start_index : start index.
$ count : Die Anzahl der zu füllenden Elemente.
$ Wert : Der Wert jedes Elements.
Beispiel:
$line = array_fill(0, 5, 0);
// Ergebnis: [0, 0, 0, 0, 0]
Um ein zweidimensionales Array wie eine 8x8-Karte oder eine Karte zu erstellen, können wir Array_Fill () verwenden, um jede Zeile in einer Schleife zu füllen.
<?php
$rows = 8;
$cols = 8;
$board = [];
for ($i = 0; $i < $rows; $i++) {
$board[$i] = array_fill(0, $cols, 0);
}
// 打印Ergebnis查看结构
echo '<pre>';
print_r($board);
echo '</pre>';
Die Ausgabe $ Board ist ein 2D -Array von 8 Zeilen und 8 Spalten, und alle Gitter werden auf 0 initialisiert. Sie können 0 durch andere Tags ersetzen, z. B. "leer" , null oder falsch .
Zum Beispiel möchten wir eine 10x10 -Karte mit dem Standard -Terrain als "Gras" bauen:
<?php
$width = 10;
$height = 10;
$map = [];
for ($y = 0; $y < $height; $y++) {
$map[$y] = array_fill(0, $width, 'grass');
}
// Nehmen wir an, dass einige Koordinaten festgelegt werden sollen "water"
$map[2][3] = 'water';
$map[4][7] = 'water';
$map[5][5] = 'mountain';
// Map Array anzeigen
echo '<pre>';
print_r($map);
echo '</pre>';
Diese Methode kann verwendet werden, um eine Karte mit einem anfänglichen Gelände zu erstellen, das für die nachfolgende Änderung oder das Rendern der Kartenschnittstelle bequem ist.
Wenn Sie beispielsweise die entsprechende Datenschnittstellenadresse für jedes Raster angeben möchten, klicken Sie auf die Seite der Rasterdetails, dies können Sie tun:
<?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>';
Auf diese Weise entspricht jedes Raster einer bestimmten URL, wie https://m66.net/grid.php?x=2&y=3 , die sehr geeignet ist, eine Click-and-Jump-Schnittstelle zu erstellen.
Durch diesen Artikel können Sie lernen:
So verwenden Sie Array_Fill () , um ein eindimensionales Array schnell zu initialisieren.
So erstellen Sie eine reguläre zweidimensionale Array-Struktur durch Looping mit Array_Fill () .
So füllen Sie mehr strukturiertere oder dynamische Inhalte (z. B. Karten, Links usw.) basierend auf Koordinaten.
Diese Methode ist einfach und effizient und eine ideale Möglichkeit, zweidimensionale Strukturen wie Karten, Schachbretter, Tabellen usw. aufzubauen.
Wenn Sie das Display weiter verschönern, Stile hinzufügen oder in tatsächlichen Projekten dynamisch mit JavaScript interagieren möchten, können Sie die generierten Daten an das Front-End zum Rendering übergeben, um fortschrittere Effekte zu erzielen.