In PHP ist Array_Fill_Keys eine sehr praktische Funktion, die schnell einen Satz von Schlüssel in ein Array füllen und angegebene Werte einheitlich zuweisen kann. Viele Entwickler haben möglicherweise solche Fragen in ihrer täglichen Verwendung:
Bevor wir uns mit Verschachtelungsarrays eintauchen, werfen wir einen Blick auf die grundlegende Syntax von Array_Fill_Keys :
array_fill_keys(array $keys, mixed $value): array
Sein Zweck ist es, den gleichen Wert für jeden Schlüssel basierend auf dem angegebenen Array von Schlüsselnamen $ Keys festzulegen.
Beispiel:
$keys = ['name', 'email', 'age'];
$result = array_fill_keys($keys, null);
print_r($result);
Ausgabe:
Array
(
[name] =>
[email] =>
[age] =>
)
Obwohl Array_Fill_Keys selbst nicht automatisch mehrschichtige verschachtelte Strukturen generiert, können Sie einschichtige Verschachteln implementieren, indem Sie den Wert des Array-Typs an ihn übergeben.
Beispiel:
$keys = ['user1', 'user2', 'user3'];
$nestedStructure = [
'id' => 0,
'username' => '',
'email' => '',
'profile' => [
'avatar' => '',
'bio' => '',
]
];
$result = array_fill_keys($keys, $nestedStructure);
print_r($result);
Ausgabe:
Array
(
[user1] => Array
(
[id] => 0
[username] =>
[email] =>
[profile] => Array
(
[avatar] =>
[bio] =>
)
)
[user2] => Array
(
[id] => 0
[username] =>
[email] =>
[profile] => Array
(
[avatar] =>
[bio] =>
)
)
[user3] => Array
(
[id] => 0
[username] =>
[email] =>
[profile] => Array
(
[avatar] =>
[bio] =>
)
)
)
Wie Sie sehen können, haben wir für jeden Benutzer eine voreingestellte verschachtelte Array -Struktur mit Array_Fill_keys erfolgreich erstellt.
Ein sehr kritisches Problem bei der Verwendung verschachtelter Arrays: Referenzen .
Array_Fill_Keys kopiert das Array, in dem Sie direkt übergeben wurden. Wenn Sie jedoch vorhaben, die verschachtelten Daten eines der Benutzer später zu ändern, stellen Sie sicher, dass Sie zuerst eine tiefe Kopie erstellen . Andernfalls können alle Schlüssel dasselbe verschachtelte Array teilen (insbesondere wenn Sie Objekte verwenden oder manuell auf Aufgaben beziehen).
Sie können diese Technik in vielen praktischen Projekten anwenden, z. B.:
Initialisieren Sie die Standarddatenstruktur für mehrere Benutzer
Die Standardwerte für mehrere Konfigurationselemente füllen
Erstellen Sie das einheitliche Format, das von der Schnittstelle zurückgegeben wurde, zum Beispiel:
$apiEndpoints = ['login', 'register', 'logout'];
$responseTemplate = [
'status' => 'success',
'data' => [],
'message' => '',
'link' => 'https://m66.net/api-docs'
];
$apiResponses = array_fill_keys($apiEndpoints, $responseTemplate);
Obwohl Array_Fill_keys nicht direkt "Nackenarrays" erstellt, können Sie die strukturierte Initialisierung vollständig implementieren, indem Sie in ein Array mit verschachtelten Strukturen als Werte übergeben. Diese Technik ist sehr effizient und präzise, wenn eine große Datenmenge mit ähnlichen Strukturen aufgebaut wird.
Ich hoffe, dieser Artikel kann Ihnen helfen, die erweiterte Verwendung von Array_Fill_Keys besser zu verstehen und zu verwenden, um Ihre PHP -Codierungseffizienz zu verbessern!