Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie Array_Filter (), um den funktionalen Stil des Code zu verbessern

Verwenden Sie Array_Filter (), um den funktionalen Stil des Code zu verbessern

M66 2025-06-03

Obwohl es sich nicht um eine rein funktionale Programmiersprache handelt, können wir durch einige integrierte funktionale Tools trotz einer rein funktionalen Programmiersprache noch eleganter, einfacher und leichter zu Code schreiben. Array_Filter () ist eine so oft übersehene, aber sehr leistungsstarke Werkzeugfunktion. In diesem Artikel wird vorgestellt, wie Sie Array_filter () verwenden, um Ihren PHP -Codestil zu verbessern und sich der funktionalen Programmierung näher zu bringen.

Was ist Array_filter () ?

Array_Filter () ist eine der integrierten Array-Verarbeitungsfunktionen in PHP, mit der Elemente in einem Array gefiltert werden. Es akzeptiert eine Rückruffunktion, die die Funktion in jedem Element des Arrays ausführt, und Elemente mit dem Rückgabewert von True werden beibehalten und andere werden entfernt.

Die Syntax ist wie folgt:

 array_filter(array $array, ?callable $callback = null, int $mode = 0): array

Wenn keine Rückruffunktion bereitgestellt wird, wird im Array (z. B. 0 , '' , Null , False usw.) Werte entfernen.

Verwendung 1: Reinigen Sie den "Nullwert" in den Daten

Oft erhalten wir einige Daten aus dem Formular oder der API, die ungültige Inhalte wie leere Zeichenfolgen, Null, False usw. enthalten können. Verwenden Sie Array_filter (), um eine Codezeile zu beseitigen.

 $data = [
    'username' => 'alice',
    'email' => '',
    'age' => null,
    'subscribe' => false,
];

$cleaned = array_filter($data);

print_r($cleaned);

Ausgabe:

 Array
(
    [username] => alice
)

Dies ist viel eleganter als manuelles Schreiben für die Aufräumarbeiten.

Verwendung 2: Kombinieren Sie anonyme Funktionen für die bedingte Filterung

Sie können eine flexiblere Zustandsfilterung implementieren, indem Sie Rückruffunktionen übergeben. Filtern Sie beispielsweise aktive Benutzer aus einer Gruppe von Benutzern heraus:

 $users = [
    ['name' => 'Alice', 'active' => true],
    ['name' => 'Bob', 'active' => false],
    ['name' => 'Carol', 'active' => true],
];

$activeUsers = array_filter($users, function ($user) {
    return $user['active'];
});

print_r($activeUsers);

Die Ausgabe enthält nur Alice und Carol.

Verwendung 3: Prozess -API -Antwort oder Datenbankergebnisse

Angenommen, Sie erhalten eine Reihe von Daten von einer Remote -API (z. B. https://api.m66.net/users ), die viele ungültige oder temporäre Benutzer enthält.

 $response = file_get_contents('https://api.m66.net/users');
$users = json_decode($response, true);

$validUsers = array_filter($users, function ($user) {
    return isset($user['email']) && filter_var($user['email'], FILTER_VALIDATE_EMAIL);
});

Wie Sie sehen können, stellt Array_filter () den Code näher an den Stil "deklarativer Programmier" und die Absichten des Code sind klarer, anstatt sich auf "Wie man Schleifen und Bedingungen implementieren" konzentriert.

Verwendung 4: Verwendung mit anderen funktionalen Methoden

Sie können array_filter () mit funktionalen Methoden wie Array_Map () und Array_Reduce () kombinieren, um logischen Code zu schreiben, der fast keinem Vordergrund gibt. Filtern und extrahieren Sie beispielsweise den Benutzernamen des aktiven Benutzers:

 $usernames = array_map(
    fn($user) => $user['name'],
    array_filter($users, fn($user) => $user['active'])
);

Präzise und elegant, mit klarer Semantik.

Zusammenfassen

Array_filter () ist eine leichte, leistungsstarke und einfach zu bedienende Funktion. Wenn es gut verwendet wird, kann es Ihren Php funktionaler und lesbarer machen. Im Vergleich zu traditionellen Foreach kann es die Absicht in einer Codezeile deutlich ausdrücken, den Code des Boilerplate reduzieren und die Wartbarkeit verbessern.

Versuchen Sie, Array_filter () in Ihrem nächsten Projekt zu verwenden, um die Qualität und den Stil Ihres Codes zu verbessern!