Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie Array_Filter (), um die Eingabe des bedingten Filterformulars zu implementieren

Verwenden Sie Array_Filter (), um die Eingabe des bedingten Filterformulars zu implementieren

M66 2025-05-14

Während des Webentwicklungsprozesses müssen wir häufig die vom Formular eingereichten Daten filtern, so dass nur Eingabeelemente eingegeben werden, die bestimmte Bedingungen erfüllen. PHP bietet eine sehr nützliche Funktion array_filter () , mit der nicht nur Nullwerte in Arrays entfernen, sondern auch Rückruffunktionen anpassen können, um eine komplexere Filterlogik zu implementieren.

In diesem Artikel wird vorgestellt, wie Sie Array_Filter () verwenden, um die im Formular eingereichten Daten bedingt zu filtern, um Ihnen dabei zu helfen, prägnanter und aufrechterhalten zu schreiben.

Was ist Array_filter ()?

Array_filter () ist eine von PHP bereitgestellte Array -Verarbeitungsfunktion. Seine Syntax ist wie folgt:

 array_filter(array $array, ?callable $callback = null, int $mode = 0): array
  • $ Array : Das zu filterne Array.

  • $ Rückruf : (optional) Eine Rückruffunktion zum Definieren von Filterbedingungen.

  • $ modus : (optional) Sie können Array_filter_use_key oder array_filter_use_both verwenden, um die Parameter der Rückruffunktion anzugeben.

Wenn die Rückruffunktion nicht übergeben wird, entfernt Array_Filter () Elemente automatisch mit FALSE im Array (wie Falsch , 0 , "" , Null , [] usw.).

Beispiel: Filterformulareingabe

Nehmen wir an, wir haben ein Benutzerregistrierungsformular, das die folgenden Felder einreicht:

  • Name

  • Post

  • Alter

  • Ob Sie E -Mail abonnieren möchten

Wir möchten Felder mit ausgefüllten Werten herausfiltern und nur die Benutzerdaten älter als 18 Jahre halten.

Beispiel für Formulare

 $_POST = [
    'name' => 'Alice',
    'email' => '',
    'age' => 17,
    'subscribe' => 'yes'
];

Implementieren Sie die Filterlogik mit Array_filter ()

 // Benutzerdefinierte Filterkriterien
$filteredInput = array_filter($_POST, function ($value, $key) {
    // Leere Werte überspringen
    if ($value === '' || $value === null) {
        return false;
    }

    // gegen age Felder werden auf bestimmte Weise verarbeitet
    if ($key === 'age') {
        return (int)$value > 18;
    }

    return true;
}, ARRAY_FILTER_USE_BOTH);

print_r($filteredInput);

Ausgangsergebnis

 Array
(
    [name] => Alice
    [subscribe] => yes
)

Wie Sie sehen können, sind E -Mails mit leeren Zeichenfolgen, die ausgeschaltet sind, das Alter von weniger oder gleich 18 ist ebenfalls herausgefiltert, und der Rest sind gültige Felder, die uns wichtig sind.

Anwendungsszenario -Erweiterung

Sie können diese Methode auch verwenden, um GET -Parameter aus URL -Anforderungen zu reinigen, z. B.:

 $_GET = [
    'search' => 'PHP',
    'page' => '0',
    'sort' => null,
    'token' => 'abc123'
];

$cleanQuery = array_filter($_GET, function ($value) {
    return $value !== '' && $value !== null;
});

$queryString = http_build_query($cleanQuery);

$url = "https://m66.net/search.php?" . $queryString;

echo $url;

Ausgabe

 https://m66.net/search.php?search=PHP&page=0&token=abc123

Beachten Sie, dass der Seitenwert von '0' nicht gefiltert wird, da wir das Urteil von 0 ausdrücklich ausschließen und aussagekräftige Parameter behalten.

Zusammenfassung

Wenn Sie Array_Filter () verwenden, können Sie unsere Codelogik bei der Verarbeitung von Formulareingaben erheblich vereinfachen und eignen sich besonders für eine leichte Datenüberprüfung oder -vorverarbeitung. Bei Verwendung mit Rückruffunktionen kann es den Anforderungen der meisten bedingten Filterung erfüllen und ist eine sehr praktische Funktion in PHP.

Es ist zu beachten, dass Array_filter () kein universelles Werkzeug für die Datenüberprüfung ist. Für komplexere Überprüfungsbedürfnisse wird weiterhin empfohlen, die Filtererweiterungen von PHP (z. B. filter_var () ) zu kombinieren oder ein vollständiges Verifizierungsrahmen für die Verarbeitung zu verwenden.

Ich hoffe, Sie können von Array_Filter () eine gute Verwendung nutzen, um die Entwicklungseffizienz zu verbessern, wenn Sie das nächste Mal verarbeiten, wenn Sie sie verarbeiten!