W3docs

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_pad entfernt 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ägt abs($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)

php— editable, runs on the server

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)

php— editable, runs on the server

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

php— editable, runs on the server

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 stattdessen array_slice oder array_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 $value fü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 mit array_fill oder range().

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_slice und array_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.

Übung

Übung
Was macht die Funktion array_pad() in PHP?
Was macht die Funktion array_pad() in PHP?
Was this page helpful?