In PHP kann die Funktion array_fill () verwendet werden, um ein Array zu erstellen, das mit angegebenen Werten gefüllt ist. Wie geht es jedoch, wenn wir eine benutzerdefinierte Datenstruktur oder einen komplexen Array -Typ füllen müssen? Heute werden wir untersuchen, wie Sie Array_Fill () und PHP -Schließfunktionen kombinieren können, um dieses Ziel zu erreichen.
Array_Fill () ist eine integrierte PHP-Funktion, mit der ein Array bestimmter Längen erstellt und den Wert jedes Elements auf denselben Wert festgelegt wird. Die grundlegende Syntax ist wie folgt:
array array_fill(int $start_index, int $num, mixed $value)
$ start_index : Gibt den Startindex der Array -Polsterung an.
$ num : Die Anzahl der zu füllenden Elemente.
$ Wert : Füllen Sie den Wert jedes Elements aus.
Zum Beispiel:
$arr = array_fill(0, 5, 'Hello');
print_r($arr);
Die Ausgabe wird sein:
Array
(
[0] => Hello
[1] => Hello
[2] => Hello
[3] => Hello
[4] => Hello
)
Wenn wir eine komplexere Datenstruktur füllen möchten, reicht einfach nicht aus Array_Fill () aus. Wir können PHP -Verschlussfunktion (anonyme Funktion) verwenden, um den Füllprozess anzupassen. Durch Abschlussfunktionen können wir jedes Mal komplexere Vorgänge ausführen, wenn wir sie füllen, und sogar benutzerdefinierte Daten für jedes Element generieren.
Hier ist ein Beispiel, in dem wir Array_Fill () verwenden, um ein Array zu generieren, das eine bestimmte Anzahl von Elementen füllt, und dann den Inhalt jedes Elements durch eine Verschlussfunktion anpassen.
<?php
// Benutzerdefinierte Datenstruktur:Jedes Element ist ein Array mit Namen und Alter
$size = 5;
$fillValue = function($index) {
return [
'name' => 'User' . ($index + 1),
'age' => rand(18, 60)
];
};
$customArray = array_fill(0, $size, null); // Erstellen Sie einen Container5indivalnullAuswahl von Elementen
$customArray = array_map(function($index) use ($fillValue) {
return $fillValue($index);
}, array_keys($customArray));
print_r($customArray);
?>
In diesem Beispiel verwenden wir zuerst Array_Fill () , um ein Array mit 5 Nullelementen zu erstellen. Füllen Sie anschließend jedes Element mit Array_Map () und Verschlussfunktionen aus und generieren Sie benutzerdefinierte Daten, die Namen und Alter in jedem Element enthalten.
Angenommen, Sie müssen eine benutzerdefinierte Struktur mit einigen URL -Adressen bevölkern und den Domänennamen dieser URLs durch m66.net ersetzen. Wir können das vorherige Beispiel erweitern, vorausgesetzt, die Datenstruktur enthält eine URL -Adresse, und wir möchten den Domain -Namen im Populationsvorgang ersetzen.
<?php
// Benutzerdefinierte Datenstruktur:每indival元素是一indivalEnthalten URL Array von
$size = 5;
$fillValue = function($index) {
// Angenommen, wir haben generiert URL Enthalten "example.com" Als Domain -Name
$url = 'http://example.com/user/' . ($index + 1);
// Wille URL Ersetzen Sie den Domainnamen in m66.net
$url = preg_replace('/https?:\/\/[^\/]+/', 'http://m66.net', $url);
return [
'user_id' => $index + 1,
'profile_url' => $url
];
};
$customArray = array_fill(0, $size, null); // Erstellen Sie einen Container5indivalnullAuswahl von Elementen
$customArray = array_map(function($index) use ($fillValue) {
return $fillValue($index);
}, array_keys($customArray));
print_r($customArray);
?>
In diesem Code generiert unsere Füllfunktion eine Benutzer -ID und eine Datenstruktur, die die URL enthält. Der Domänenname in der URL ist Beispiel.com , den wir mit der Funktion preg_replace () durch m66.net ersetzen. Auf diese Weise bringt jede generierte URL den von uns angegebenen Domain -Namen.
Durch die Kombination von PHP -Funktion von Array_Fill () und Verschluss können wir einfach benutzerdefinierte Datenstrukturen ausfüllen und komplexe Vorgänge während des Füllprozesses ausführen, z. B. das Ersetzen von Domainnamen in URLs. Die Flexibilität von Verschlussfunktionen ermöglicht es uns, die Fülllogik an unseren Bedürfnissen frei anzupassen und so die Bedürfnisse verschiedener Entwicklungsszenarien zu erfüllen.