Aktueller Standort: Startseite> Neueste Artikel> Wie verwendet ich Array_Chunk mit Array_filter, um Daten herauszufiltern, die die Kriterien nach Blöcken aus einem Array erfüllen?

Wie verwendet ich Array_Chunk mit Array_filter, um Daten herauszufiltern, die die Kriterien nach Blöcken aus einem Array erfüllen?

M66 2025-04-26

In PHP sind Array_Chunk und Array_filter sehr nützliche Funktionen. Array_Chunk kann ein großes Array in kleine Stücke schneiden, während Array_filter die Filterbedingungen auf jedes Element im Array anwenden kann und Elemente beibehält, die den Bedingungen erfüllen. Wenn Sie diese beiden Funktionen kombinieren, ist es möglich, Daten nach Block effizient zu filtern.

Array -Chunk -Filterung mit Array_Chunk und Array_filter

Angenommen, wir haben ein Array mit einer großen Anzahl von Elementen, und wir möchten das Array um eine bestimmte Blockgröße in Scheiben schneiden, und nur Elemente, die bestimmte Bedingungen erfüllen, werden erhalten. Anschließend können wir Array_Chunk zum Schneiden verwenden und dann Array_filter verwenden, um die Elemente in jedem Schicht zu filtern.

Beispiel: Filtern Sie Benutzer über 18 Jahre aus dem Benutzerarray heraus

Angenommen, wir haben eine Reihe von Benutzern, die den Namen und das Alter des Benutzers enthalten, und wir müssen Benutzer, die älter als oder gleich 18 Jahre alt sind, nach Block herausfiltern.

 <?php

// Rohdatenarray
$users = [
    ['name' => 'Alice', 'age' => 25],
    ['name' => 'Bob', 'age' => 17],
    ['name' => 'Charlie', 'age' => 20],
    ['name' => 'David', 'age' => 15],
    ['name' => 'Eva', 'age' => 22],
    ['name' => 'Frank', 'age' => 19],
];

// Split -Array für Block
$chunks = array_chunk($users, 2); // Jeder Block enthält 2 Ein Benutzer

// Filtern Sie jedes Stück,Alter behalten >= 18 Benutzer
$filteredChunks = array_map(function($chunk) {
    return array_filter($chunk, function($user) {
        return $user['age'] >= 18;
    });
}, $chunks);

// Druckfilterte Ergebnisse drucken
print_r($filteredChunks);

?>

erklären:

  1. Array_Chunk ($ Benutzer, 2) Teilen Sie das ursprüngliche Benutzerarray in kleine Arrays mit 2 Benutzern pro Block.

  2. Mit Array_Map können wir die Funktion array_filter auf jedes kleine Array anwenden (d. H. Jedes Datenstück).

  3. Array_filter filtert Benutzer, die die Altersanforderungen erfüllen, basierend auf den Bedingungen des Benutzers ['Alter']> = 18 .

  4. Schließlich enthält das $ filteredChunks -Array die gefilterten Daten für jeden Block.

Ausgabe:

 Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [name] => Alice
                    [age] => 25
                )

            [2] => Array
                (
                    [name] => Charlie
                    [age] => 20
                )
        )

    [1] => Array
        (
            [4] => Array
                (
                    [name] => Eva
                    [age] => 22
                )

            [5] => Array
                (
                    [name] => Frank
                    [age] => 19
                )
        )
)

Weitere Optimierung: Verwenden Sie benutzerdefinierte Filterbedingungen

Sie können die Filterbedingungen gemäß den tatsächlichen Bedingungen ändern, um unterschiedliche Anforderungen zu erfüllen. Wenn wir beispielsweise Benutzer zwischen 18 und 30 Jahren herausfiltern möchten, können wir die Filterfunktion anpassen:

 $filteredChunks = array_map(function($chunk) {
    return array_filter($chunk, function($user) {
        return $user['age'] >= 18 && $user['age'] <= 30;
    });
}, $chunks);

Auf diese Weise können Sie flexibel mit unterschiedlichen Filteranforderungen umgehen.

Zusammenfassen

Durch die Kombination von Array_Chunk und Array_filter können wir leicht große Arrays in Stücken verarbeiten und eine bedingte Filterung in jedem Block durchführen. Diese Methode eignet sich zur Verarbeitung großer Datenmengen, wodurch der Speicherverbrauch effektiv reduziert und die Leistung verbessert und gleichzeitig der Code prägnanter und leicht verständlicher wird.

Ich hoffe, dieser Artikel wird für Sie hilfreich sein, um die Verwendung von Array_Chunk und Array_Filter zu verstehen! Wenn Sie Fragen haben oder an anderen PHP -Funktionen interessiert sind, besuchen Sie bitte unsere Website!