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.
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.).
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.
$_POST = [
'name' => 'Alice',
'email' => '',
'age' => 17,
'subscribe' => 'yes'
];
// 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);
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.
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;
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.
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!