array_filter
(PHP 4 >= 4.0.6, PHP 5, PHP 7)
array_filter — Filtre les éléments d'un tableau grâce à une fonction de rappel
Description
É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.
Liste de paramètres
-
array
-
Le tableau à parcourir
-
callback
-
La fonction de rappel à utiliser
Si aucune fonction de rappel
callback
n'est fournie, toutes les entrées du tableauarray
valantFALSE
(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 decallback
au lieu de la valeur.
callback
. -
Historique
Version | Description |
---|---|
5.6.0 |
Ajout du paramètre optionnel flag
et des constantes ARRAY_FILTER_USE_KEY
et ARRAY_FILTER_USE_BOTH
|
Exemples
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) }
Notes
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.
Voir aussi
- array_map() - Applique une fonction sur les éléments d'un tableau
- array_reduce() - Réduit itérativement un tableau
- array_walk() - Exécute une fonction fournie par l'utilisateur sur chacun des éléments d'un tableau
Version en cache
05/11/2024 16:23:56 Cette version de la page est en cache (à la date du 05/11/2024 16:23:56) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-function.array-filter.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.