Aktueller Standort: Startseite> Neueste Artikel> Beispiel für die praktische Anwendung von Array_filter () in Laravel

Beispiel für die praktische Anwendung von Array_filter () in Laravel

M66 2025-06-04

Während des täglichen Entwicklungsprozesses von Laravel begegnen wir häufig Szenarien, in denen "ungültige" Daten im Array gereinigt werden müssen. Beispielsweise müssen Felder, die nicht in das Formular ausgefüllt sind, Werte, die in API -Parametern leer sind, oder Datenelemente basierend auf einer bestimmten Logik gefiltert werden müssen. In PHP ist Array_filter () ein leistungsstarkes Werkzeug, um diese Probleme zu lösen.

Obwohl Array_Filter () eine native PHP -Funktion ist, hat es auch ein sehr breites Anwendungsszenario im Laravel -Projekt. Als nächstes führen wir Sie Schritt für Schritt durch ein paar echte Beispiele, um es in Ihrem Laravel -Projekt anmutig zu verwenden.

Grundverbrauch: Null- oder leere Saiten aus einem Array entfernen

Eines der häufigsten Szenarien ist, wenn der Benutzer ein Formular einreicht, einige Felder jedoch leer sind. Wir wollen nur nicht leere Felder verarbeiten.

 $data = [
    'name' => 'Alice',
    'email' => '',
    'phone' => null,
    'age' => 25,
];

// verwenden array_filter Filter leere Werte(Es wird standardmäßig entfernt false、null、''、0)
$filtered = array_filter($data);

dd($filtered);

Ausgabe:

 [
    'name' => 'Alice',
    'age' => 25,
]

In Laravel wird diese Verarbeitung häufig verwendet, um die angeforderten Daten im Controller zu erhalten:

 public function store(Request $request)
{
    $data = array_filter($request->only(['name', 'email', 'phone', 'age']));
    
    // Die folgende Logik verarbeitet nur nicht leere Felder
    User::create($data);

    return redirect()->to('https://m66.net/success');
}

Benutzerdefinierte Filter: Nummern aufbewahren, aber leere Zeichenfolgen entfernen

Der Standard -Array_Filter () entfernt alle "falschen Werte", einschließlich der Nummer 0 und der Zeichenfolge "0". Was ist, wenn Sie nur leere Saiten entfernen und gültige 0s aufbewahren möchten?

 $data = [
    'status' => 0,
    'code' => '0',
    'description' => '',
];

// Benutzerdefinierte Rückrufe,Filter nur leere Saiten
$filtered = array_filter($data, function ($value) {
    return $value !== '';
});

Ausgabe:

 [
    'status' => 0,
    'code' => '0',
]

Diese Schreibmethode ist im Umgangsauftragsstatus, der Preisspanne und anderer Logik sehr praktisch und vermeidet die Fehlerlöschung von effektivem "0".

Verwenden Sie in Kombination mit Sammlungen

Die Sammlung von Laravel bietet auch eine ähnliche Filter () -Methode, ähnlich wie bei array_filter () , aber leistungsfähiger. Zum Beispiel können wir in einer Kette arbeiten:

 $users = collect([
    ['name' => 'Tom', 'email' => 'tom@m66.net'],
    ['name' => 'Jerry', 'email' => null],
    ['name' => 'Spike', 'email' => ''],
]);

$filtered = $users->filter(function ($user) {
    return !empty($user['email']);
});

Sie können auch Filter () direkt verwenden, um die Logik zu vereinfachen:

 $filtered = $users->filter(fn($user) => !empty($user['email']));

Ausgabe:

 [
    ['name' => 'Tom', 'email' => 'tom@m66.net'],
]

Praktisches Szenario: Filter -Suchkriterien in Anfragen

Angenommen, Sie entwickeln eine Benutzer-Suchfunktion, und das Front-End übergibt einige optionale Parameter und möchten nur eine Abfrage erstellen, die nicht leere Bedingungen enthält:

 public function index(Request $request)
{
    $filters = array_filter($request->only(['name', 'email', 'status']), function ($val) {
        return $val !== '';
    });

    $users = User::where($filters)->get();

    return view('users.index', compact('users'));
}

Auf diese Weise können Sie flexible Abfragebedingungen basierend auf den tatsächlichen Eingaben erstellen, um ungültige Abfragen wie WO ('', '') zu vermeiden.

Zusammenfassen

Array_Filter () ist ein einfaches, aber sehr leistungsfähiges Werkzeug. Bei der Verwendung von Laravels Anfrage und Sammlung kann dies die Effizienz der Datenreinigung und die Lesbarkeit der Code erheblich verbessern.

Wenn Sie Array_filter () in Ihrem Projekt nicht verwendet haben, können Sie es jetzt genauso gut versuchen und es zu einem guten Helfer machen, wenn Sie Laravel schreiben!