(PHP 4 >= 4.0.6, PHP 5, PHP 7)
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.
array
Le tableau à parcourir
callback
La fonction de rappel à utiliser
Si aucune fonction de rappel callback
n'est fournie,
toutes les entrées du tableau array
valant FALSE
(voir la
conversion en
booléen) seront retirées.
flag
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.
callback
.
Retourne le tableau filtré.
Version | Description |
---|---|
5.6.0 |
Ajout du paramètre optionnel flag
et des constantes ARRAY_FILTER_USE_KEY
et ARRAY_FILTER_USE_BOTH
|
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
flag
<?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.