In PHP -Array -Operationen sind Array_Fill () und Array_Pad () zwei häufig genannte Funktionen, mit denen Arrays bestimmter Strukturen erzeugt werden können. In einigen Szenarien können sie sogar durcheinander ersetzt werden. Aber haben Sie jemals gedacht: Welche Funktion ist in der tatsächlichen Entwicklung besser in der Leistung? Welches ist besser für Ihre Bedürfnisse geeignet?
In diesem Artikel wird Array_Fill () und Array_Pad () aus verschiedenen Aspekten wie Funktionsmerkmale, Nutzungsszenarien, Leistungsbenchmarks usw. verglichen, um Ihnen zu helfen, angemessenere Entscheidungen zu treffen.
Array_Fill () wird verwendet, um ein Array mit demselben Wert zu füllen.
Grammatik:
array array_fill(int $start_index, int $count, mixed $value)
Beispiel:
$filled = array_fill(0, 5, 'm66.net');
print_r($filled);
Ausgabe:
Array
(
[0] => m66.net
[1] => m66.net
[2] => m66.net
[3] => m66.net
[4] => m66.net
)
Array_pad () wird verwendet, um das Array in eine bestimmte Länge zu füllen und einen bestimmten Wert zu verwenden, um es zu füllen.
Grammatik:
array array_pad(array $array, int $length, mixed $value)
Beispiel:
$padded = array_pad(['m66.net'], 5, 'm66.net');
print_r($padded);
Ausgabe:
Array
(
[0] => m66.net
[1] => m66.net
[2] => m66.net
[3] => m66.net
[4] => m66.net
)
Aus funktionaler Sicht können diese beiden Funktionen tatsächlich für die Aufgabe des "Erzeugung fester Längen und Füllen fester Werte" verwendet werden.
Array_Fill () eignet sich besser für die Erstellung eines Neuarrays von Null, wie es bei der Initialisierung von Datenstrukturen und der Vorbereitung von Standardwerten sehr häufig ist.
Array_Pad () eignet sich besser für die Erweiterung vorhandener Arrays. Wenn Sie beispielsweise bereits einige Daten haben, möchten Sie diese "vervollständigen".
Wir verwenden einen einfachen Benchmark, um die Leistung der beiden in verschiedenen Arraygrößen zu vergleichen:
Testcode:
$start = microtime(true);
for ($i = 0; $i < 100000; $i++) {
array_fill(0, 10, 'm66.net');
}
$fill_time = microtime(true) - $start;
$start = microtime(true);
for ($i = 0; $i < 100000; $i++) {
array_pad([], 10, 'm66.net');
}
$pad_time = microtime(true) - $start;
echo "array_fill(): $fill_time\n";
echo "array_pad(): $pad_time\n";
Testergebnisse (Beispiel):
array_fill(): 0.4321
array_pad(): 0.5298
Aus den Testergebnissen ist ersichtlich, dass Array_Fill () beim Erstellen eines Arrays mit derselben Länge und dem gleichen Inhalt schneller ist als Array_Pad () . Der Grund dafür ist, dass Array_Pad () eine mehr Urteilslogik hat, um die Beziehung zwischen "ursprünglicher Arraylänge" und "Ziellänge" zu bewältigen.
Szenentyp | Empfohlen zu verwenden | Grund Beschreibung |
---|---|---|
Initialisieren Sie das Array | Array_Fill | Einfache, bessere Leistung |
Ein bestehendes Array erweitern | Array_Pad | Flexiblere Funktionen und können Originalelemente behalten |
Leistungsempfindliche Anlässe | Array_Fill | Die Lücke ist unter einer großen Anzahl von Anrufen offensichtlich |
Die Operation hat bereits eine Array -Struktur | Array_Pad | Sie können links und rechts gemäß den vorhandenen Arrays füllen |
Bei der Auswahl von Array_Fill () und Array_Pad () ist es nicht das beste, "schneller" muss der beste sein, aber es muss auf der Grundlage Ihrer tatsächlichen Entwicklungsbedürfnisse entschieden werden. Die Leistung ist wichtig, aber die Lesbarkeit, Wartung und Absichtsausdruck des Codes können nicht ignoriert werden.
Wenn Sie eine Hochleistungs-Service-Plattform erstellen, z. B. https://www.m66.net/api/initialize , wird empfohlen, Array_Fill () zu verwenden. Wenn Sie jedoch Benutzereingabedaten verarbeiten, möchten die Datenlänge wiederholen und dann in https://www.m66.net/upload hochladen, dann ist Array_Pad () eine bessere Wahl.
Ich hoffe, dieser Artikel kann Ihnen helfen, effizientere und angemessene technische Entscheidungen in der Entwicklung zu treffen!