(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
array_filter — Filtre les éléments d'un tableau grâce à une fonction de rappel
   Évalue chaque valeur du tableau array en
   les passant à la fonction de rappel callback.
   Si la fonction de rappel callback retourne true,
   la valeur courante du tableau array est retournée
   dans le tableau résultant.
  
   Les clés du tableau sont préservées, et peut entrainer des anomalies si le
   tableau array était indexé. Le tableau résultant
   peut être ré-indexé en utilisant la fonction array_values().
  
arrayLe tableau à parcourir
callbackLa fonction de rappel à utiliser
       Si aucune fonction de rappel callback n'est fournie,
       toutes les entrées vides du tableau array seront supprimées.
       Voir la fonction empty() pour comprendre la façon dont PHP gère
       le vide dans ce cas.
      
mode
       Drapeau indiquant quels sont les arguments à envoyer
       à la fonction de rappel callback :
       
ARRAY_FILTER_USE_KEY - passer la clé comme seul
          argument à callback au lieu de la valeur.
         
        ARRAY_FILTER_USE_BOTH - passer à la fois la
          valeur et la clé comme arguments de callback
          au lieu de la valeur.
         
        0, qui passera la valeur comme
       seul argument de callback.
      
     Retourne le tableau filtré.
| Version | Description | 
|---|---|
| 8.0.0 | callbackest désormais nullable. | 
| 8.0.0 | Si callbackattend un paramètre à être passé par
  référence, cette fonction émet désormais uneE_WARNING. | 
Exemple #1 Exemple avec array_filter()
<?php
function odd($var)
{
    // retourne si l'entier en entrée est impair
    return $var & 1;
}
function even($var)
{
    // retourne si l'entier en entrée est pair
    return !($var & 1);
}
$array1 = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
$array2 = [6, 7, 8, 9, 10, 11, 12];
echo "Impair :\n";
print_r(array_filter($array1, "odd"));
echo "Pair :\n";
print_r(array_filter($array2, "even"));
?>
L'exemple ci-dessus va afficher :
Impair :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Pair :
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)
Exemple #2 Exemple avec array_filter()
    callback
<?php
$entry = [
    0 => 'foo',
    1 => false,
    2 => -1,
    3 => null,
    4 => '',
    5 => '0',
    6 => 0,
];
print_r(array_filter($entry));
?>
L'exemple ci-dessus va afficher :
Array
(
    [0] => foo
    [2] => -1
)
Exemple #3 Exemple avec array_filter() et 
    mode
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4];
var_dump(array_filter($arr, function($k) {
    return $k == 'b';
}, ARRAY_FILTER_USE_KEY));
var_dump(array_filter($arr, function($v, $k) {
    return $k == 'b' || $v == 4;
}, ARRAY_FILTER_USE_BOTH));
?>
L'exemple ci-dessus va afficher :
array(1) {
  ["b"]=>
  int(2)
}
array(2) {
  ["b"]=>
  int(2)
  ["d"]=>
  int(4)
}
Si le tableau est modifié depuis la fonction de rappel (par exemple des éléments sont ajoutés, effacés ou détruit), le comportement de cette fonction est indéfini.