Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie Array_Filter (), um Elemente mit booleschen Wert falsch zu filtern

Verwenden Sie Array_Filter (), um Elemente mit booleschen Wert falsch zu filtern

M66 2025-06-05

Während der PHP -Entwicklung ist die Verarbeitungsarrays eine sehr häufige Anforderung. Eines der typischen Szenarien ist: Wir möchten Elemente im Array mit einem booleschen Wert falsch entfernen, wie False , 0 , "" (leere Zeichenfolge), Null , leeres Array usw. Zu diesem Zeitpunkt ist die Funktion array_filter () ein sehr nützliches Werkzeug.

Was ist Array_filter ()?

Array_Filter () ist eine integrierte Funktion von PHP. Seine Funktion besteht darin, jedes Element im Array mit einer Rückruffunktion zu filtern und ein neues Array aller von der Rückruffunktion getesteten Elemente zurückzugeben. Wenn die Rückruffunktion nicht übergeben wird, wird automatisch alle Elemente mit einem booleschen Wert von False entfernt.

Grammatik:

 array_filter(array $array, ?callable $callback = null, int $mode = 0): array
  • $ Array : Das ursprüngliche Array zum Filter

  • $ callback (optional): benutzerdefinierte Rückruffunktion

  • $ modus (optional): Kann steuern, ob der Schlüssel oder der Wert an die Rückruffunktion oder beides übergeben wurde

Beispiel: Entfernen Sie das Element mit booleschen Wert Falsch

Wenn wir keine Rückruffunktion übergeben, wird Array_filter () alle Werte entfernen, die im Array standardmäßig falsch äquivalent sind.

Beispielcode:

 $data = [
    'name' => 'John',
    'age' => 0,
    'email' => '',
    'is_active' => false,
    'preferences' => [],
    'bio' => null,
    'website' => 'https://m66.net/profile/john'
];

$filtered = array_filter($data);

print_r($filtered);

Ausgangsergebnis:

 Array
(
    [name] => John
    [website] => https://m66.net/profile/john
)

Wie Sie sehen können, sind 0 , '' , False , Null , [] alle herausgefiltert, so dass nur Elemente mit dem Booleschen Wert wahr sind.

Was ist, wenn Sie nur einige "falsche Werte" herausfiltern möchten?

Wenn Sie beispielsweise nur False und Null entfernen und 0 und '' behalten möchten, müssen Sie die Rückruffunktion anpassen:

 $filtered = array_filter($data, function ($value) {
    return $value !== false && $value !== null;
});

print_r($filtered);

Dies ermöglicht eine genauere Kontrolle der Filterregeln.