array_filter
1
array_filter($tableau, function($elt){...})
Cette fonction retourne un nouveau tableau contenant les éléments pour lesquels la fonction a retourné vrai.
La valeur retournée par la fonction est true ou false.
$elt : représente un élément du tableau à chaque tour de boucle
Exemple : Garde les valeurs multiples de 3.
1
<?php
2
$listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
3
4
$tab = array_filter(
5
$listeNombres,
6
function ($nombre) {
7
return $nombre % 3 == 0;
8
}
9
);
10
11
var_dump($tab); // [12, 9, 3, 15]
Équivalent avec fonction fléchée
1
<?php
2
$listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
3
4
$tab = array_filter($listeNombres, fn ($nombre) => $nombre % 3 == 0);
5
6
var_dump($tab); // [12, 9, 3, 15]
Équivalent avec foreach
1
<?php
2
$listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
3
4
$tab = [];
5
foreach ($listeNombres as $nombre) {
6
if($nombre % 3 == 0) $tab[] = $nombre;
7
}
8
9
var_dump($tab);
Équivalent avec for
1
<?php
2
$listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
3
4
$tab = [];
5
for ($i = 0; $i < count($listeNombres); $i++) {
6
if($listeNombres[$i] % 3 == 0) $tab[] = $listeNombres[$i];
7
}
8
9
var_dump($tab);
Exemple : Garde les nombres entre 6 et 13
1
<?php
2
$listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
3
4
$tab = array_filter(
5
$listeNombres,
6
function ($nombre) {
7
return $nombre > 6 && $nombre < 13;
8
}
9
);
10
11
var_dump($tab); // [12, 7, 9, 8]
Équivalent avec fonction fléchée
1
<?php
2
$listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
3
4
$tab = array_filter($listeNombres, fn ($nombre) => $nombre > 6 && $nombre < 13);
5
6
var_dump($tab); // [12, 7, 9, 8]
Équivalent avec foreach
1
<?php
2
$listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
3
4
$tab = [];
5
foreach ($listeNombres as $nombre) {
6
if($nombre > 6 && $nombre < 13) $tab[] = $nombre;
7
}
8
9
var_dump($tab);
Exemple : Garde les mots de moins de 6 caractères
1
<?php
2
$listeMots = ['bonjour', 'hello', 'matin', 'soir', 'journée', 'maintenant', 'après'];
3
4
$tab = array_filter(
5
$listeMots,
6
function ($mot) {
7
return mb_strlen($mot) < 6;
8
}
9
);
10
11
var_dump($tab); // ['hello', 'matin', 'soir', 'après']
Équivalent avec fonction fléchée
1
<?php
2
$listeMots = ['bonjour', 'hello', 'matin', 'soir', 'journée', 'maintenant', 'après'];
3
4
$tab = array_filter($listeMots, fn ($mot) => mb_strlen($mot) < 6);
5
6
var_dump($tab); // ['hello', 'matin', 'soir', 'après']
Équivalent avec foreach
1
<?php
2
$listeMots = ['bonjour', 'hello', 'matin', 'soir', 'journée', 'maintenant', 'après'];
3
4
$tab = [];
5
foreach ($listeMots as $mot) {
6
if(mb_strlen($mot) <= 6) $tab[] = $mot;
7
}
8
9
var_dump($tab);
Équivalent avec for
1
<?php
2
$listeMots = ['bonjour', 'hello', 'matin', 'soir', 'journée', 'maintenant', 'après'];
3
4
$tab = [];
5
for ($i = 0; $i < count($listeMots); $i++) {
6
if(mb_strlen($listeMots[$i]) <= 6) $tab1[] = $listeMots[$i];
7
}
8
9
var_dump($tab);
Exemple : Garde les majeurs d'une liste de tableaux associatifs
1
<?php
2
$listePersonnes = [
3
['id' => 8, 'nom' => 'Aule', 'prenom' => 'Lucie', 'age' => 45],
4
['id' => 9, 'nom' => 'Ball', 'prenom' => 'Annie', 'age' => 24],
5
['id' => 10, 'nom' => 'Bon', 'prenom' => 'Jean', 'age' => 65],
6
['id' => 11, 'nom' => 'Braisile', 'prenom' => 'France', 'age' => 13]
7
];
8
9
$tab = array_filter(
10
$listePersonnes,
11
function ($personne) {
12
return $personne['age'] > 18;
13
}
14
);
15
16
var_dump($tab);
Équivalent avec fonction fléchée
1
<?php
2
$listePersonnes = [
3
['id' => 8, 'nom' => 'Aule', 'prenom' => 'Lucie', 'age' => 45],
4
['id' => 9, 'nom' => 'Ball', 'prenom' => 'Annie', 'age' => 24],
5
['id' => 10, 'nom' => 'Bon', 'prenom' => 'Jean', 'age' => 65],
6
['id' => 11, 'nom' => 'Braisile', 'prenom' => 'France', 'age' => 13]
7
];
8
9
$tab = array_filter($listePersonnes, fn ($personne) => $personne['age'] > 18);
10
11
var_dump($tab);
Équivalent avec foreach
1
<?php
2
$listePersonnes = [
3
['id' => 8, 'nom' => 'Aule', 'prenom' => 'Lucie', 'age' => 45],
4
['id' => 9, 'nom' => 'Ball', 'prenom' => 'Annie', 'age' => 24],
5
['id' => 10, 'nom' => 'Bon', 'prenom' => 'Jean', 'age' => 65],
6
['id' => 11, 'nom' => 'Braisile', 'prenom' => 'France', 'age' => 13]
7
];
8
9
$tab = [];
10
foreach ($listePersonnes as $personne) {
11
if( $personne['age'] > 18) $tab[] = $personne;
12
}
13
14
var_dump($tab);
Équivalent avec for
1
<?php
2
$listePersonnes = [
3
['id' => 8, 'nom' => 'Aule', 'prenom' => 'Lucie', 'age' => 45],
4
['id' => 9, 'nom' => 'Ball', 'prenom' => 'Annie', 'age' => 24],
5
['id' => 10, 'nom' => 'Bon', 'prenom' => 'Jean', 'age' => 65],
6
['id' => 11, 'nom' => 'Braisile', 'prenom' => 'France', 'age' => 13]
7
];
8
9
$tab = [];
10
for ($i = 0; $i < count($listePersonnes ); $i++) {
11
if( $listePersonnes[$i]['age'] > 18) $tab[] = $listePersonnes[$i];
12
}
13
14
var_dump($tab);