PHP Func Array Values: Ein umfassender Leitfaden
Umfassender Leitfaden zur PHP-Funktion array_values(): Was sie tut, wie sie funktioniert und wann man sie einsetzt.
Die Funktion array_values() gibt alle Werte eines Arrays zurück und indiziert sie mit aufeinanderfolgenden ganzzahligen Schlüsseln neu, beginnend bei 0. Sie ist eine der einfachsten und am häufigsten verwendeten Array-Hilfsfunktionen in PHP: Wenn ein array Lücken in seinen Schlüsseln hat oder string-Schlüssel besitzt, die nicht mehr benötigt werden, liefert array_values() ein sauberes, listenartiges array zurück. Diese Seite behandelt die Syntax, wann man sie einsetzen sollte, den Vergleich mit verwandten Funktionen sowie ausführbare Beispiele.
Was ist die Funktion array_values()?
array_values() ist eine eingebaute PHP-Funktion, die ein array entgegennimmt und ein neues array mit allen seinen Werten zurückgibt. Das ursprüngliche array bleibt unverändert. Das zurückgegebene array verwendet stets sequenzielle ganzzahlige Schlüssel (0, 1, 2, …), und die ursprünglichen Schlüssel — ob string oder nicht-sequenzielle Ganzzahlen — werden verworfen. Die relative Reihenfolge der Werte bleibt erhalten.
Syntax und Rückgabewert
array_values(array $array): array$array— das Eingabe-array, dessen Werte extrahiert werden sollen.- Gibt zurück: ein indiziertes array mit allen Werten, neu nummeriert ab
0.
Wie funktioniert array_values()?
Die Syntax ist unkompliziert. Hier ein grundlegendes Beispiel:
Die Ausgabe dieses Codes wäre:
Array
(
[0] => apple
[1] => banana
[2] => cherry
)Wie zu sehen ist, nimmt die Funktion array_values() das Eingabe-array $input und gibt ein neues array $output zurück, das alle Werte von $input enthält, mit neuen numerischen Schlüsseln beginnend bei null. Die ursprünglichen Schlüssel des Eingabe-arrays werden verworfen.
Warum array_values() verwenden?
Die Funktion array_values() kann in verschiedenen Situationen nützlich sein. Wenn Sie beispielsweise ein assoziatives array mit nicht-sequenziellen Schlüsseln haben, möchten Sie möglicherweise array_values() verwenden, um ein neues array mit sequenziellen numerischen Schlüsseln zu erstellen. Dies kann hilfreich sein, wenn Sie Operationen auf den Werten des ursprünglichen arrays durchführen müssen, die sequenzielle Schlüssel erfordern, wie etwa Sortieren oder Suchen.
Ein weiterer Anwendungsfall für array_values() ist, wenn Sie die Schlüssel aus einem array entfernen möchten, aber die Reihenfolge der Werte erhalten wollen. Wenn Sie array_values() einfach auf das ursprüngliche array anwenden, hat das neue array dieselbe Reihenfolge wie das ursprüngliche array, jedoch mit numerischen Schlüsseln beginnend bei null.
Vergleich von array_values() mit anderen PHP-Funktionen
Neben array_values() gibt es andere PHP-Funktionen, die ähnliche Aufgaben erfüllen. Hier ein kurzer Vergleich:
array_keys(): Gibt ein array mit allen Schlüsseln des Eingabe-arrays zurück — das Spiegelbild vonarray_values().array_flip(): Tauscht alle Schlüssel mit ihren zugehörigen Werten aus.array_combine(): Erstellt ein neues array, das ein array für Schlüssel und ein anderes für Werte verwendet.array_column(): Gibt die Werte aus einer einzelnen Spalte eines mehrdimensionalen arrays zurück.
Obwohl diese Funktionen alle ihren eigenen Nutzen haben, besitzen sie unterschiedliche Anwendungsfälle. array_keys() und array_flip() arbeiten mit den Schlüsseln eines arrays, während array_combine() zwei Arrays zu einem zusammenführt. Weitere Informationen zu Arrays im Allgemeinen finden Sie im Kapitel PHP Arrays.
Best Practices für die Verwendung von array_values()
Hier sind einige Tipps und Best Practices für den effektiven Einsatz von array_values():
- Beachten Sie, dass
array_values()die ursprünglichen Schlüssel des Eingabe-arrays verwirft. Wenn Sie die Schlüssel erhalten möchten, verwenden Sie eine andere Funktion, wie etwaarray_keys(). - Wenn Sie ein array mit nicht-sequenziellen Schlüsseln haben, verwenden Sie
array_values(), um vor Operationen, die sequenzielle Schlüssel erfordern, ein neues array mit sequenziellen Schlüsseln zu erstellen. - Verwenden Sie
array_values(), um die Schlüssel aus einem array zu entfernen und dabei die Reihenfolge der Werte beizubehalten. - Bei der Arbeit mit großen Arrays sollten Sie bedenken, dass das Erstellen eines neuen arrays mit
array_values()erheblich Speicher verbrauchen kann. Erwägen Sie in solchen Fällen alternative Methoden, die kein neues array erstellen müssen. - Verwenden Sie sinnvolle Namenskonventionen für Ihre Variablen, um Ihren Code lesbarer und verständlicher zu machen.
Praktische Beispiele für die Verwendung von array_values()
Lassen Sie uns nun einige praktische Beispiele für die Verwendung von array_values() in PHP-Code ansehen.
Beispiel 1: Nicht-numerische Schlüssel aus einem Array entfernen
Angenommen, Sie haben ein assoziatives array mit nicht-numerischen Schlüsseln und möchten die Schlüssel entfernen und ein neues array mit sequenziellen numerischen Schlüsseln erstellen. So können Sie das mit array_values() umsetzen:
PHP array_values Funktion mit assoziativem array
Die Ausgabe dieses Codes wäre:
Array
(
[0] => apple
[1] => banana
[2] => cherry
[3] => date
)Wie zu sehen ist, hat array_values() ein neues array mit sequenziellen numerischen Schlüsseln erstellt und dabei die ursprünglichen nicht-numerischen Schlüssel verworfen.
Beispiel 2: Ein Array nach dem Filtern neu indizieren
Dies ist der häufigste reale Anwendungsfall von array_values(). Funktionen wie array_filter() behalten die ursprünglichen Schlüssel bei, sodass das Entfernen von Elementen Lücken in der Nummerierung hinterlässt. Durch den anschließenden Aufruf von array_values() erhalten Sie eine saubere, lückenlose Liste:
PHP: Ein array nach array_filter() neu indizieren
Die Ausgabe dieses Codes wäre:
Array
(
[2] => 10
[3] => 15
[4] => 20
)
Array
(
[0] => 10
[1] => 15
[2] => 20
)Beachten Sie, dass array_filter() die ursprünglichen Schlüssel 2, 3 und 4 beibehält, während array_values() sie auf 0, 1 und 2 zurücksetzt. Dies ist wichtig, wenn Sie das array später JSON-kodieren (Lücken bei ganzzahligen Schlüsseln werden zu einem JSON-object statt einem array) oder auf Positionen zugreifen.
Fazit
array_values() gibt ein neues, neu indiziertes array zurück, das alle Werte des Eingabe-arrays enthält und dabei die ursprünglichen Schlüssel verwirft. Greifen Sie darauf zurück, wenn Sie ein sauberes, listenartiges array benötigen — am häufigsten nach Filter-, Entfernungs- oder Sortiervorgängen, die nicht-sequenzielle Schlüssel hinterlassen. Denken Sie daran, dass das ursprüngliche array nie verändert wird und dass das Kopieren bei sehr großen Arrays Speicherkosten verursacht, die es zu berücksichtigen gilt.