Aktueller Standort: Startseite> Neueste Artikel> Array_Filter () wird in Kombination mit anonymen Funktionen verwendet

Array_Filter () wird in Kombination mit anonymen Funktionen verwendet

M66 2025-06-05

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.

1. Was ist Array_filter () ?

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.

2. Einführung in anonyme Funktionen und Schließungen

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.

3.. Kombinationsnutzungsbeispiele

Beispiel 1: Filternummern größer als 10

 $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.

Beispiel 2: Filtern Sie leere Felder in einem Array (z. B. nach der Einreichung des Formulars)

 $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
)

Beispiel 3: Behalten Sie Elemente auf, deren Schlüsselnamen bestimmte Zeichenfolgen im Schlüsselwertpaar enthalten

 $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
)

Beispiel 4: Filterung mit URL -Daten

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);

4. Zusammenfassung

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.