In der Entwicklung müssen wir häufig Datenstrukturen dynamisch erstellen, basierend auf den vom Frontend übergebenen Feldern, z. B. bei Verarbeitung von Daten, Exportieren von Feldern oder dynamisch konfigurieren der Schnittstelle, um Inhalte zurückzugeben. Die Funktion "Array_Fill_keys" von PHP kann verwendet werden, um eine Array -Struktur mit bestimmten Feldern effizient zu initialisieren.
In diesem Artikel wird ein praktisches Beispiel verwendet, um zu erklären, wie Sie schnell eine wiederverwendbare Datenvorlage mit Array_Fill_Keys in Kombination mit der Feldliste erstellen können, die vom Front-End übergeben wurden.
Array_Fill_Keys ist eine Funktion, die in PHP zum Erstellen eines Arrays verwendet wird, das zwei Parameter akzeptiert:
array_fill_keys(array $keys, mixed $value): array
$ Keys : Das Array, das als Schlüssel verwendet werden soll.
$ Wert : Der Standardwert, der allen Schlüssel entspricht.
Das Schöne an dieser Funktion ist, dass sie schnell ein Array mit einer einheitlichen Struktur ohne manuelle Schleife erzeugen kann.
Angenommen, das Frontend übergeht eine Array von Feldern, unsere Aufgabe ist es, eine Array -Vorlage zu generieren, die den Standardwert (wie NULL ) basierend auf diesen Feldern enthält. Diese Vorlage kann verwendet werden, um Daten zu füllen, Felder zu überprüfen, Antwortstrukturen zu erstellen usw.
<?php
// Angenommen, dies ist der Front-End-PassPOSTListe der Felder kommen
$inputFields = $_POST['fields'] ?? ['id', 'name', 'email'];
// verwenden array_fill_keys Erstellen Sie einen Standardwert als null Struktur von
$dataTemplate = array_fill_keys($inputFields, null);
// Jetzt können Sie Daten basierend auf dieser Struktur konstruieren,Füllen Sie beispielsweise die in der Datenbank abgefragten Benutzerdaten ein:
$userFromDb = [
'id' => 101,
'name' => 'Alice',
'email' => 'alice@example.com',
'created_at' => '2024-04-01'
];
// Verwenden Sie Vorlagen, um nur erforderliche Felder zu filtern
$filteredUser = array_intersect_key($userFromDb, $dataTemplate);
// Füllen Sie fehlende Felder aus(Wenn in der Datenbank keine Felder übertragen werden)
$finalUserData = array_merge($dataTemplate, $filteredUser);
print_r($finalUserData);
?>
Array
(
[id] => 101
[name] => Alice
[email] => alice@example.com
)
Manchmal sendet das Frontend auch eine Reihe von Feldern, um Linkparameter zu generieren, z. B. wenn Sie eine Sprungadresse erstellen möchten:
$fields = $_GET['fields'] ?? ['uid', 'token'];
$params = array_fill_keys($fields, '');
// Füllen Sie die tatsächlichen Parameter aus(Zum Beispiel vonsessionHolen Sie sich es in oder in der Geschäftslogik)
$params['uid'] = 888;
$params['token'] = 'abc123';
// StrukturURL
$queryString = http_build_query($params);
$url = "https://m66.net/api/user_info?" . $queryString;
echo $url;
// Ausgabe:https://m66.net/api/user_info?uid=888&token=abc123
Durch die Verwendung von Array_Fill_Keys können wir elegant und effizient eine einheitliche Datenstruktur basierend auf Front-End-Eingangsfeldern erstellen. Es vereinfacht nicht nur die Codelogik, sondern verbessert auch die Flexibilität und Wartbarkeit des Codes. Seine Rolle ist noch unverzichtbarer, wenn sie mit Array -Funktionen wie Array_Merge und Array_intersect_key kombiniert werden.
Anwendbar auf:
Erstellen Sie eine Datenvorlage
Dynamische Feldfilterung
Parameterinitialisierung
Stapelzuweisungsvorgänge usw.
Nutzen Sie diese Funktion gut, um Ihren PHP -Code prägnanter und leistungsfähiger zu gestalten.