Elemente aus einem PHP-Array nach Wert (nicht nach Schlüssel) entfernen
Beim Umgang mit Arrays in PHP ist es oft notwendig, Elemente basierend auf zu entfernen auf ihren Werten und nicht auf ihren Schlüsseln. Stellen Sie sich ein Array wie dieses vor:
$messages = [312, 401, 1599, 3, ...];
Da die Werte in diesem Array eindeutig sind, wie können wir dann selektiv ein Element mit einem bestimmten Wert löschen, ohne seinen Schlüssel zu kennen?
Lösung : Verwenden von array_search() und unset()
PHP stellt für diesen Zweck zwei nützliche Funktionen zur Verfügung: array_search() und unset(). Die Kombination dieser Funktionen ermöglicht es uns, nach dem Schlüssel des Elements zu suchen und ihn dann aus dem Array zu entfernen. So funktioniert es:
if (($key = array_search($del_val, $messages)) !== false) { unset($messages[$key]); }
Dieser Code verwendet array_search(), um den Schlüssel des Elements mit dem Wert $del_val zu finden. Wenn der Schlüssel nicht gefunden wird, gibt array_search() FALSE zurück. Wir verwenden jedoch den strikten Vergleichsoperator !==, um sicherzustellen, dass der Ausdruck nur dann als wahr ausgewertet wird, wenn array_search() explizit FALSE zurückgibt, und vermeiden so falsche y-Werte (z. B. Schlüssel 0).
Wenn der Schlüssel ist Wenn das Element gefunden wurde, wird die Funktion unset() verwendet, um das Element aus dem Array $messages zu entfernen. Es ist wichtig zu beachten, dass unset() nach Schlüssel funktioniert, weshalb wir den Schlüssel zuerst von array_search() erhalten müssen.
Das obige ist der detaillierte Inhalt vonWie kann ich ein Element aus einem PHP-Array nach Wert und nicht nach Schlüssel entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!