Position actuelle: Accueil> Derniers articles> Comment filtrer les données de blocs spécifiques avec Array_Chunk en combinaison avec array_filter

Comment filtrer les données de blocs spécifiques avec Array_Chunk en combinaison avec array_filter

M66 2025-04-26

Dans PHP, Array_Chunk et Array_Filter sont des fonctions très utiles. Array_chunk peut couper un grand tableau en petits morceaux, tandis que Array_Filter peut appliquer des conditions de filtrage à chaque élément du tableau, en conservant des éléments qui remplissent les conditions. En combinant ces deux fonctions, il est possible de filtrer efficacement les données par bloc.

Filtrage de morceaux de l'arborescence à l'aide de Array_Chunk et Array_Filter

Supposons que nous ayons un tableau avec un grand nombre d'éléments, et nous voulons trancher le tableau d'une certaine taille de bloc, et seuls les éléments qui remplissent certaines conditions sont conservés. Ensuite, nous pouvons utiliser Array_Chunk pour trancher, puis utiliser Array_Filter pour filtrer les éléments de chaque tranche.

Exemple: filtrez les utilisateurs de plus de 18 ans du tableau utilisateur

Supposons que nous ayons un éventail d'utilisateurs qui contiennent le nom et l'âge de l'utilisateur, et nous devons filtrer les utilisateurs plus âgés ou égaux à 18 ans par bloc.

 <?php

// Tableau de données brutes
$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],
];

// Tableau divisé par bloc
$chunks = array_chunk($users, 2); // Chaque bloc contient 2 Un utilisateur

// Filtrez chaque pièce,Conserver l&#39;âge >= 18 Utilisateurs
$filteredChunks = array_map(function($chunk) {
    return array_filter($chunk, function($user) {
        return $user['age'] >= 18;
    });
}, $chunks);

// Imprimer les résultats filtrés
print_r($filteredChunks);

?>

expliquer:

  1. Array_chunk ($ utilisateurs, 2) divise le tableau utilisateur d'origine en petits tableaux contenant 2 utilisateurs par bloc.

  2. Array_map nous permet d'appliquer la fonction Array_Filter à chaque petit tableau (c'est-à-dire chaque élément de données).

  3. Array_Filter filtre les utilisateurs qui répondent aux exigences d'âge en fonction des conditions de l'utilisateur ['Âge']> = 18 .

  4. Enfin, le tableau $ filteredchunks contiendra les données filtrées pour chaque bloc.

Sortir:

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

Optimisation supplémentaire: utilisez des conditions de filtrage personnalisées

Vous pouvez modifier les conditions de filtre en fonction des conditions réelles pour répondre à différents besoins. Par exemple, si nous voulons filtrer les utilisateurs entre 18 et 30 ans, nous pouvons ajuster la fonction de filtrage:

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

De cette façon, vous pouvez gérer de manière flexible différents besoins de filtrage.

Résumer

Grâce à la combinaison de Array_Chunk et Array_Filter , nous pouvons facilement traiter les grandes tableaux en morceaux et effectuer un filtrage conditionnel dans chaque bloc. Cette méthode convient au traitement de grandes quantités de données, ce qui peut réduire efficacement la consommation de mémoire et améliorer les performances, tout en rendant le code plus concis et plus facile à comprendre.

J'espère que cet article sera utile pour que vous compreniez l'utilisation de Array_Chunk et Array_Filter ! Si vous avez des questions ou si vous êtes intéressé par d'autres fonctions PHP, veuillez visiter notre site Web!