Position actuelle: Accueil> Derniers articles> Utilisez array_filter () pour filtrer les éléments avec une valeur booléenne fausse

Utilisez array_filter () pour filtrer les éléments avec une valeur booléenne fausse

M66 2025-06-05

Pendant le développement de PHP, le traitement des tableaux est une exigence très courante. L'un des scénarios typiques est: nous voulons supprimer des éléments dans le tableau avec une valeur booléenne false , comme false , 0 , "" (chaîne vide), null , tableau vide, etc. Pour le moment, la fonction array_filter () est un outil très utile.

Qu'est-ce que Array_Filter ()?

Array_Filter () est une fonction intégrée de PHP. Sa fonction consiste à filtrer chaque élément du tableau avec une fonction de rappel et à renvoyer un nouveau tableau de tous les éléments testés par la fonction de rappel. Si la fonction de rappel n'est pas adoptée, elle supprimera automatiquement tous les éléments avec une valeur booléenne de false .

grammaire:

 array_filter(array $array, ?callable $callback = null, int $mode = 0): array
  • $ tableau : le tableau d'origine à filtrer

  • $ rappel (facultatif): fonction de rappel personnalisée

  • $ mode (facultatif): peut contrôler si la clé ou la valeur transmise à la fonction de rappel ou les deux

Exemple: supprimer l'élément avec une valeur booléenne fausse

Lorsque nous ne transmettons aucune fonction de rappel, Array_Filter () supprimera toutes les valeurs équivalentes à false dans le tableau par défaut.

Exemple de code:

 $data = [
    'name' => 'John',
    'age' => 0,
    'email' => '',
    'is_active' => false,
    'preferences' => [],
    'bio' => null,
    'website' => 'https://m66.net/profile/john'
];

$filtered = array_filter($data);

print_r($filtered);

Résultat de sortie:

 Array
(
    [name] => John
    [website] => https://m66.net/profile/john
)

Comme vous pouvez le voir, 0 , '' , false , null , [] sont tous filtrés, ne laissant que des éléments avec une valeur booléenne vraie .

Et si vous voulez simplement filtrer certaines "fausses valeurs"?

Par exemple, si vous souhaitez supprimer uniquement False and Null et conserver 0 et '' , vous devez personnaliser la fonction de rappel:

 $filtered = array_filter($data, function ($value) {
    return $value !== false && $value !== null;
});

print_r($filtered);

Cela permet un contrôle plus précis des règles de filtrage.