Wie Entferne ich einen bestimmten Schlüssel in einem array mit Hilfe von php?
Ich habe ein array mit 4 Werten. Ich möchte entfernen Sie den Wert an die 2. position und dann den rest des key-shift ein.
$b = array(123,456,789,123);
Bevor Sie die Taste an der 2-position:
Array ( [0] => 123 [1] => 456 [2] => 789 [3] => 123 )
Nach möchte ich die restlichen Tasten "nach unten" ein zu füllen den Raum des fehlenden Schlüssels,
Array ( [0] => 123 [1] => 789 [2] => 123 )
Versuchte ich mit unset() auf die spezifischen Schlüssel, aber es würde nicht schalten Sie die übrigen Tasten. Wie Entferne ich einen bestimmten Schlüssel in einem array mit Hilfe von php?
- mögliche Duplikate von Zeile entfernen von array-Schlüssel
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie
array_values($b)
um re-key der array die Schlüssel sind sequentielle und Ziffern (beginnend bei 0).Folgenden sollte den trick tun:
array_key_exists
wenn Sie schon einmal planen, um diese dynamisch 🙂Verwenden
array_splice()
.Niemand hat sich angeboten, eine Methode, mit array_diff_key(), so werde ich der Vollständigkeit halber.
Code:
Ausgabe:
Diese Methode bietet nicht nur das erwartete Ergebnis in einem one-liner, es ist sicher zu verwenden, ohne eine array_key_exists() Zustand.
Diese Methode bietet auch die zusätzliche Funktion erlaubt mehrere element Umzüge durch Schlüssel in einem Schritt. JJJ die Lösung ermöglicht auch diese, aber nur mit aufeinander aufbauenden Elementen.
array_diff_key()
bietet die Flexibilität zum entfernen von Schlüsseln, unabhängig von Ihrer position im array.Code zu entfernen, 2. und 4. Elemente (Tasten 1 und 3):
Ausgabe:
Niemand erwähnt hat, so will ich tun:
sort()
ist dein Freund.Ausgabe:
Ausgabe:
Dies ist die eine, die Sie verwenden möchten, um Neuindizierung der Tasten:
Ausgabe:
Wenn Sie möchten, entfernen Sie ein Element von einem array an einer bestimmten position, erhalten Sie die Schlüssel für die position und dann unset es:
Dieser funktioniert mit allen PHP-array, unabhängig davon, wo die Indizierung beginnt, oder wenn strings verwendet werden, für die Schlüssel.
Wenn Sie möchten, nummerieren Sie die übrigen array-nutzen Sie einfach
array_values
:Die geben Sie eine null-basiert, numerisch indiziertes array.
Wenn das original-array ist null-basiert, numerisch indizierte Arrays als auch (wie in deiner Frage), können Sie überspringen den Teil über den Erhalt der Schlüssel:
Oder direkt verwenden
array_splice
die sich mit offsets anstelle von Tasten und re-Indizes der Arrays (numerische Tasten im input sind nicht erhalten):