Der ultimative Leitfaden zur PHP-Funktion array_pad
Erfahren Sie, wie PHP's array_pad-Funktion Arrays auf eine Ziellänge auffüllt, die Richtung steuert und praktische Anwendungsfälle meistert.
Arrays sind für nahezu jedes PHP-Programm grundlegend, und manchmal muss ein array eine garantierte Länge haben – aufgefüllt mit Platzhalterwerten, wenn es zu kurz ist. PHP's array_pad-Funktion macht genau das: Sie gibt eine Kopie eines Arrays zurück, das auf eine Zielgröße angewachsen ist, wobei neue Slots mit einem Wert Ihrer Wahl gefüllt werden. Dieser Leitfaden behandelt die Syntax, wie das Vorzeichen der Größe die Auffüllrichtung steuert, das Verhalten, das Menschen überrascht, sowie ausführbare Beispiele.
Was die Funktion array_pad macht
array_pad gibt ein neues array zurück, das auf eine von Ihnen festgelegte Länge aufgefüllt wurde. Zwei Regeln bestimmen ihr Verhalten:
- Wenn die angeforderte Größe größer als die Eingabe ist, werden Kopien Ihres Füllwerts hinzugefügt – am Ende, wenn die Größe positiv ist, am Anfang, wenn sie negativ ist.
- Wenn die angeforderte Größe kleiner oder gleich der aktuellen Länge des Arrays ist, wird das array unverändert zurückgegeben.
array_padentfernt niemals Elemente.
Das ursprüngliche array wird nicht verändert; Sie arbeiten mit dem zurückgegebenen Wert.
Syntax der Funktion array_pad
array_pad(array $array, int $length, mixed $value): array$array: Das Eingabe-array, das Sie auffüllen möchten. Es wird nicht verändert.$length: Die Zielgröße. Ein positiver Wert füllt rechts auf (Ende); ein negativer Wert füllt links auf (Anfang). Die Anzahl der hinzugefügten Elemente beträgtabs($length) - count($array).$value: Der Wert, der für jedes aufgefüllte Element verwendet wird. Er kann von beliebigem Typ sein, einschließlich eines weiteren Arrays.
Anwendungsfälle für die Funktion array_pad
Die Funktion array_pad ist praktisch, wenn Sie folgendes möchten:
- Sicherstellen, dass ein array mindestens N Elemente hat, bevor Sie über feste Positionen iterieren.
- Daten rechts- oder linksbündig ausrichten, indem Sie die gegenüberliegende Seite auffüllen.
- Ein Raster, Formular oder eine Tabellenzeile fester Größe mit Standard-Platzhaltern füllen.
Beispiele der Funktion array_pad
Hier sind einige Beispiele, wie die Funktion array_pad in realen Szenarien verwendet werden kann:
Beispiel 1: Am Ende auffüllen (positive Größe)
Ausgabe:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 0
[4] => 0
)Das Eingabe-array $numbers hat 3 Elemente und die Zielgröße ist 5, also werden 5 - 3 = 2 Nullen am Ende angehängt.
Beispiel 2: Am Anfang auffüllen (negative Größe)
Ausgabe:
Array
(
[0] => black
[1] => black
[2] => red
[3] => green
[4] => blue
)Die Größe -5 ist negativ, daher erfolgt das Auffüllen am Anfang. Die ursprünglichen 3 Farben behalten ihre Reihenfolge und abs(-5) - 3 = 2 Kopien von 'black' werden vorangestellt. Beachten Sie, dass die Schlüssel unabhängig von der Richtung ab 0 neu indiziert werden.
Beispiel 3: Ein array mit einem bestimmten Wert füllen
Ausgabe:
Array
(
[0] => a
[1] => b
[2] => c
[3] => z
[4] => z
[5] => z
[6] => z
)Die Eingabe hat 3 Elemente und die Zielgröße ist 7, also werden 7 - 3 = 4 Kopien von 'z' angehängt.
Fallstricke und Randfälle
Einige Verhaltensweisen überraschen Menschen:
- Es verkleinert niemals ein array. Wenn
abs($length)kleiner oder gleich der aktuellen Anzahl ist, wird das array unverändert zurückgegeben. Um Elemente zu entfernen, verwenden Sie stattdessenarray_sliceoderarray_splice. - String-Schlüssel werden beibehalten, aber das Auffüllen erfolgt immer numerisch. Wenn Sie ein assoziatives array auffüllen, bleiben die vorhandenen string-Schlüssel erhalten und die neuen Elemente erhalten sequentielle Integer-Schlüssel:
<?php
$scores = array('math' => 90, 'science' => 85);
print_r(array_pad($scores, 4, 0));
?>Array
(
[math] => 90
[science] => 85
[0] => 0
[1] => 0
)- Der Füllwert kann von beliebigem Typ sein. Das Übergeben eines Arrays als
$valuefügt Kopien dieses gesamten Arrays ein, was nützlich ist, um Raster mit Standardzeilen aufzubauen. - Das Auffüllen ist fest, nicht interpoliert. Jeder neue Slot erhält genau denselben
$value. Wenn Sie eine generierte oder sequentielle Füllung benötigen, erstellen Sie diese mitarray_filloderrange().
Verwandte Funktionen
array_fill— ein neues array erstellen, das vollständig mit einem Wert gefüllt ist.array_merge— Arrays kombinieren, anstatt eines aufzufüllen.array_sliceundarray_splice— Teile eines Arrays extrahieren oder entfernen.array_chunk— ein aufgefülltes array in Gruppen fester Größe aufteilen.
Fazit
array_pad ist der schnellste Weg, um sicherzustellen, dass ein array eine bestimmte Länge hat, ohne eine Schleife schreiben zu müssen. Denken Sie an die zwei Regeln, die sein Verhalten bestimmen: Eine positive Größe füllt das Ende auf, eine negative Größe füllt den Anfang auf, und eine Größe bei oder unterhalb der aktuellen Länge lässt das array unverändert. Mit diesem Wissen – sowie den oben beschriebenen Schlüsselbehandlungen und Randfällen – können Sie array_pad immer dann einsetzen, wenn Sie vorhersagbare Arrays fester Größe in Ihren PHP-Projekten benötigen.