Das Filter -Array -Daten in PHP ist eine sehr häufige Operation, insbesondere wenn die Benutzereingabe-, API -Daten- oder Datenbankergebnisse verarbeitet werden. Array_Filter () ist eine leistungsstarke Funktion, die von PHP bereitgestellt wird, die anonyme Funktionen (Schließungen) kombinieren kann, um eine flexible und effiziente Datenfilterung zu erzielen. In diesem Artikel werden Sie Schritt für Schritt erforderlich, um zu verstehen, wie Sie sie verwenden, um verschiedene Filterlogik zu implementieren.
Array_filter () ist eine integrierte PHP-Funktion, die jedes Element im Array durch eine Rückruffunktion (Rückruf) beurteilt und ein neues Array zurückgibt, das aus Elementen besteht, die den Bedingungen erfüllen.
Die grundlegende Syntax ist wie folgt:
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
$ Array : Das Array zum Filter.
$ Callback : Die für jedes Element verwendete Rückruffunktion. Bei Auslassung werden Elemente mit einem Wert von FALSE standardmäßig entfernt.
$ modus : optionaler Parameter, um festzustellen, ob der Schlüsselname als Parameter bestanden werden soll.
Anonyme Funktionen, die auch als Verschluss bezeichnet werden, sind eine Funktion ohne einen Namen in PHP, der für die Verwendung während der temporären Logikverarbeitung sehr geeignet ist. Die Syntax ist wie folgt:
$filterFunc = function($value) {
return $value > 10;
};
Diese Art von Funktion wird normalerweise mit Array_Filter () verwendet, um mehr granuläre Datenregelung zu erreichen.
$numbers = [4, 15, 9, 23, 5];
$filtered = array_filter($numbers, function($value) {
return $value > 10;
});
print_r($filtered);
Ausgabe:
Array
(
[1] => 15
[3] => 23
)
Sie können sehen, dass nur Zahlen mehr als 10 beibehalten werden.
$formData = [
'name' => 'Alice',
'email' => '',
'age' => null,
'city' => 'Beijing'
];
$cleanData = array_filter($formData, function($value) {
return !empty($value);
});
print_r($cleanData);
Ausgabe:
Array
(
[name] => Alice
[city] => Beijing
)
$data = [
'user_id' => 101,
'user_name' => 'Bob',
'admin_role' => true,
'timestamp' => 1681920000
];
$filtered = array_filter($data, function($value, $key) {
return str_contains($key, 'user');
}, ARRAY_FILTER_USE_BOTH);
print_r($filtered);
Ausgabe:
Array
(
[user_id] => 101
[user_name] => Bob
)
Angenommen, Sie erhalten das folgende Array von einer Datenquelle (z. B. https://m66.net/api/posts ):
$posts = [
['title' => 'Hello World', 'url' => 'https://m66.net/post/1', 'published' => true],
['title' => 'Draft Post', 'url' => 'https://m66.net/post/2', 'published' => false],
['title' => 'PHP Tips', 'url' => 'https://m66.net/post/3', 'published' => true],
];
Sie können Array_filter () verwenden, um nur veröffentlichte Artikel zu halten:
$publishedPosts = array_filter($posts, function($post) {
return $post['published'] === true;
});
print_r($publishedPosts);
Die Verwendung von Array_Filter () kombiniert mit anonymen Funktionen kann problemlos verschiedene angepasste Datenfilteranforderungen erfüllen. Unabhängig davon, ob es sich um die Filterung numerischer Werte, Zeichenfolgen oder mehrdimensionaler Arrays, müssen Sie nur eine geeignete Schließfunktion übergeben, um sie flexibel zu handhaben.
Anregung:
Verwenden Sie bei der Verarbeitung von Benutzerdaten unbedingt Filter, um unerwünschte Inhalte zu löschen.
Verwenden Sie anonyme Funktionen, um die Code -Lesbarkeit und -modularität so weit wie möglich zu verbessern.
Wenn Sie den Schlüsselnamen im Einklang mit dem Original -Array in Übereinstimmung halten möchten, können Sie ihn mit Array_Filter_USE_BOTH verwenden.